你如何使用Maven构建Eclipse插件?我需要哪些依赖项或插件?我期待为Eclipse 3.7开发.
我已经使用SLF4J JUL桥将glassfish 3配置为使用SLF4J并且它工作正常.我现在遇到的问题是,如果我使用相同的设置,SLF4J会抱怨类路径上存在重复的SLF4J绑定,并且在搜索之后,glassfish本身包含这些引用.
我如何让SLF4J工作?我尝试依赖提供的SLF4J-API,然后删除了LogBack Classic,因为glassfish已经包含一些logback代码.做这些事情不会产生任何成功的结果.
沃尔特
我正在尝试为一个利用 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,这似乎有点无关紧要。这是这里所需的工作流程,还是有其他方法可以做到这一点?
我想将装饰器模式应用到guice中,不仅是拦截所有方法的普通旧AOP,而且还只是用于特定接口的那些。我看到有两个社区项目:
https://github.com/beluchin/decorice
但是,我希望装饰者不了解默认实现。如果我已经使用所需的绑定设置了默认模块,那么稍后尝试覆盖该绑定时,我将遇到问题。如果我没有在装饰器模块中预先设置这些绑定,则必须声明要在其中装饰的默认实现。
我不喜欢这种方法,有没有更好的方法呢?
我正在使用HG,mercurial来备份一些二进制和文本文件(大约12G值).我正在推送到远程存储库,我的系统没有响应(鼠标和键盘没有做任何事情).
CPU很忙,但不是平面的,我也有大约1.5GB的可用内存.
是什么导致我的系统窒息?这是我第一次将内容推送到存储库,因此应该传输大约3.5GB的总数据(HG使用了多少空间).
沃尔特
我正在使用 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) 我正在使用 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 发送电子邮件。
感谢您的帮助。
沃尔特
我得到一个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) 我有一个在Spring之外创建的类的实例,我希望能够访问Spring bean,以便它可以触发一个事件并被Spring bean观察到.我没有使用Spring Web,我的应用程序是通过spring boot从命令行运行的.
我使用 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)
我的建议有效,但我的建议的返回值没有被使用。