小编Wal*_*ter的帖子

如何使用maven构建Eclipse插件?

你如何使用Maven构建Eclipse插件?我需要哪些依赖项或插件?我期待为Eclipse 3.7开发.

eclipse eclipse-plugin maven

21
推荐指数
1
解决办法
1万
查看次数

不能让SLF4J使用glassfish 4

我已经使用SLF4J JUL桥将glassfish 3配置为使用SLF4J并且它工作正常.我现在遇到的问题是,如果我使用相同的设置,SLF4J会抱怨类路径上存在重复的SLF4J绑定,并且在搜索之后,glassfish本身包含这些引用.

我如何让SLF4J工作?我尝试依赖提供的SLF4J-API,然后删除了LogBack Classic,因为glassfish已经包含一些logback代码.做这些事情不会产生任何成功的结果.

沃尔特

slf4j glassfish-embedded glassfish-4

14
推荐指数
1
解决办法
7603
查看次数

无法使用 onmethod 属性在 lombok setters/getters 上生成 JavaDoc

我正在尝试为一个利用 lombok 的项目生成 JavaDoc,但在我对生成的 setter 和 getter 进行注释的情况下遇到问题。

代码:

public class Car {
  @Getter(onMethod = @__(@Sensitive))
  @Setter(onMethod = @__(@Sensitive))
  @Sensitive
  @ToString.Exclude
  @Transient
  protected transient String instanceKeyId;
Run Code Online (Sandbox Code Playgroud)

而且,我正在跑步:

mvn javadoc:attach-javadocs
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我收到此错误:

[ERROR] Exit code: 1 - Car.java:26: error: cannot find symbol
[ERROR]   @Getter(onMethod = @__(@Sensitive))
Run Code Online (Sandbox Code Playgroud)

我使用的是 Java 11 - 我的项目可以构建并运行。我有最新版本的 javadoc 插件,我还缺少其他东西吗?

听起来我需要听取这里的建议1并设置 delombok,然后对其进行 javadoc,这似乎有点无关紧要。这是这里所需的工作流程,还是有其他方法可以做到这一点?

javadoc lombok

7
推荐指数
1
解决办法
2790
查看次数

我将如何在guice应用程序中应用装饰器模式?

我想将装饰器模式应用到guice中,不仅是拦截所有方法的普通旧AOP,而且还只是用于特定接口的那些。我看到有两个社区项目:

https://github.com/beluchin/decorice

但是,我希望装饰者不了解默认实现。如果我已经使用所需的绑定设置了默认模块,那么稍后尝试覆盖该绑定时,我将遇到问题。如果我没有在装饰器模块中预先设置这些绑定,则必须声明要在其中装饰的默认实现。

我不喜欢这种方法,有没有更好的方法呢?

java decorator guice

6
推荐指数
0
解决办法
209
查看次数

HG - 为什么它会导致我的系统无响应

我正在使用HG,mercurial来备份一些二进制和文本文件(大约12G值).我正在推送到远程存储库,我的系统没有响应(鼠标和键盘没有做任何事情).

CPU很忙,但不是平面的,我也有大约1.5GB的可用内存.

是什么导致我的系统窒息?这是我第一次将内容推送到存储库,因此应该传输大约3.5GB的总数据(HG使用了多少空间).

沃尔特

mercurial

5
推荐指数
1
解决办法
138
查看次数

Maven - 坚持构建项目

我正在使用 Maven 构建可能有也可能没有子项目的项目(不确定这是否相关)。在这之前我有很多项目都构建得很好,但这个就只是坐在那里。它在 pom.xml 中没有任何特殊内容,但它只是在编译阶段挂起。

有什么想法我可以做什么吗?一个项目可以拥有的子级数量有限制吗?

运行kill -3 PID 的堆栈跟踪:

Full thread dump OpenJDK 64-Bit Server VM (21.0-b17 mixed mode):

"resolver-5" daemon prio=10 tid=0x00007f2a5473f800 nid=0x4a5a waiting on condition [0x00007f2a5b61a000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000e08c45f0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1043)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)

"MultiThreadedHttpConnectionManager cleanup" daemon prio=10 tid=0x00007f2a54922800 nid=0x4920 in Object.wait() [0x00007f2a5b216000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000e2255160> (a java.lang.ref.ReferenceQueue$Lock) …
Run Code Online (Sandbox Code Playgroud)

java maven

5
推荐指数
1
解决办法
2975
查看次数

go-smtp,无法通过gmail发送电子邮件,收到EOF

我正在使用 go-smtp 尝试向自己发送电子邮件: https: //github.com/emersion/go-smtp

    auth := sasl.NewPlainClient("", USERNAME, PASSWORD)
    to := []string{USERNAME}

    msg := strings.NewReader("To: " + USERNAME + "\r\n" +
        "Subject: testing golang go-smtp!\r\n" +
        "\r\n" +
        "This is the email body.\r\n")

    err := smtp.SendMail(SERVER_HOST + ":" + SERVER_PORT, auth, USERNAME, to, msg)
    if err != nil {
        log.Fatal(err)
    }
Run Code Online (Sandbox Code Playgroud)

输出为:EOF 退出状态 1

我正在连接到 smtp.gmail.com:465 并且可以通过 Thunderbird 发送电子邮件。

感谢您的帮助。

沃尔特

gmail go

2
推荐指数
1
解决办法
9306
查看次数

NullPointerException - JOptionPane

我得到一个NullPointerException具有JOptionPane与OpenJDK的1.6.0.22在Linux上.我提醒用户必须选择一定数量的项目.该线程正在Event Dispatch Thread上运行.

JOptionPane.showMessageDialog(this, "At least one entity must be selected.",
                "Selection Error", JOptionPane.ERROR_MESSAGE);

java.lang.NullPointerException
    at sun.awt.X11.XWindowPeer.restoreTransientFor(XWindowPeer.java:1681)
    at sun.awt.X11.XWindowPeer.removeFromTransientFors(XWindowPeer.java:1747)
    at sun.awt.X11.XWindowPeer.setModalBlocked(XWindowPeer.java:1469)
    at sun.awt.X11.XWindowPeer.setModalBlocked(XWindowPeer.java:1440)
    at java.awt.Window.setModalBlocked(Window.java:1359)
    at java.awt.Dialog.unblockWindow(Dialog.java:1597)
    at java.awt.Dialog.modalHide(Dialog.java:1483)
    at java.awt.Dialog.hideAndDisposePreHandler(Dialog.java:1215)
    at java.awt.Dialog.hide(Dialog.java:1255)
    at java.awt.Component.show(Component.java:1553)
    at java.awt.Component.setVisible(Component.java:1503)
    at java.awt.Window.setVisible(Window.java:881)
    at java.awt.Dialog.setVisible(Dialog.java:1011)
    at javax.swing.JOptionPane$3.propertyChange(JOptionPane.java:1021)
    at java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:298)
    at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:291)
    at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:229)
    at java.awt.Component.firePropertyChange(Component.java:8148)
    at javax.swing.JOptionPane.setValue(JOptionPane.java:1964)
    at javax.swing.plaf.basic.BasicOptionPaneUI$ButtonActionListener.actionPerformed(BasicOptionPaneUI.java:1201)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:253)
    at java.awt.Component.processMouseEvent(Component.java:6268)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:6033)
    at java.awt.Container.processEvent(Container.java:2045)
    at java.awt.Component.dispatchEventImpl(Component.java:4629)
    at …
Run Code Online (Sandbox Code Playgroud)

java swing

1
推荐指数
1
解决办法
699
查看次数

spring boot应用程序 - 从静态上下文获取bean

我有一个在Spring之外创建的类的实例,我希望能够访问Spring bean,以便它可以触发一个事件并被Spring bean观察到.我没有使用Spring Web,我的应用程序是通过spring boot从命令行运行的.

spring spring-boot

1
推荐指数
1
解决办法
6409
查看次数

无法使用 Byte Buddy 修改方法调用的返回值

我使用 Byte Buddy 编写了一个代理,并尝试修改返回值。

代理代码(部分伪代码):

premain(String args, Instrumentation instrumentation) {
  new AgentBuilder.Default().disableClassFormatChanges()
          .with(AgentBuilder.RedefinitionStrategy.RETRANSFORMATION)
          .type(ElementMatchers.is(target.class))
          .transform(
              (builder, typeDescription, classLoader, module) ->
                  builder
                      .visit(
                          Advice.to(CustomAdvice.class).on(ElementMatchers.named("methodName").and(ElementMatchers.isPublic()))))
          .installOn(instrumentation);
}


public class CustomAdvice {
  @Advice.OnMethodExit
  public static String intercept(@Advice.Return String value) {
    System.out.println("intercepted: " + value);
    return "hi: " + value;
  }
}
Run Code Online (Sandbox Code Playgroud)

我的建议有效,但我的建议的返回值没有被使用。

java byte-buddy

1
推荐指数
1
解决办法
559
查看次数