使用Intellij进行EclipseLink静态编织

时间:2013-08-28 18:08:38

标签: intellij-idea eclipselink

我正在使用IntelliJ,我希望我的单元测试可以通过静态编织来运行或调试以进行延迟加载等。我知道,与Eclipse不同,IntelliJ没有静态编织步骤,但我想有人必须在运行或调试测试之前将IntelliJ设置为静态编织。

到目前为止,我尝试使用-javaagent:./ path / eclipselink-2.5.0.jar的JVM参数进行动态编织,但这似乎不起作用。我仍然收到这些警告:

[EL Warning]: metadata: 2013-08-28 11:00:51.091--ServerSession(1610028911)--Reverting the lazy setting on the OneToOne or ManyToOne attribute [owner] for the entity class [class com.my.Contact] since weaving was not enabled or did not occur.

我的IntelliJ兄弟和姐妹是否只是在这上面并且在IDE中跳过编织?我们只是不使用EclipseLink或者我们是否已经弄清楚如何处理静态编织并仍然使用IntelliJ?

谢谢!

2 个答案:

答案 0 :(得分:1)

IntelliJ Idea可以运行其他目标来构建应用程序。

如果您有配置了staticweave插件的maven项目,则可以添加maven" process-classes"目标是在构思构建运行时自动执行静态操作。

答案 1 :(得分:0)

您可以在启动运行配置之前创建其他构建步骤。

  • 运行>编辑配置......
  • 选择所需的运行配置
  • 添加静态weaver编译器作为`在启动之前的附加构建步骤:
    • 例如,添加像eclipselink:weave
    • 这样的Maven目标
    • 或者执行像java org.eclipse.persistence.tools.weaving.jpa.StaticWeave…
    • 这样的java进程
    • 位置应介于Build和`Build artifact``
    • 之间
  • 请参见屏幕截图:Define additional build steps

另一个解决方案是将Maven目标定义为Maven工具窗口中After Build的钩子。只需右键单击相应的Maven目标,然后选择Execute After Build。这将在Build执行后每次通过Maven执行EclipseLink Weaver。您将在Maven目标后面的括号中看到钩子:

Create a Maven goal build hook in IDEA