小编gia*_*gia的帖子

在Eclipse启动配置中更改默认的"Program to Run"

我不时地使用Eclipse从Eclipse中启动JUnit测试

运行方式> JUnit插件测试

默认情况下,Eclipse假定您正在运行需要工作台的东西,并在启动配置的"Main"部分中进行选择

LaunchConfig> Main>要运行的程序>运行应用程序> org.eclipse.ui.ide.workbench

我可以理解为什么这是默认值,但对于我(以及我们团队中的所有人)来说,情况永远不会如此.我们总是需要运行我们的JUnit插件测试

LaunchConfig> Main>要运行的程序>运行应用程序> [无应用程序]无头模式

如何更改此默认行为?我目前正在使用Eclipse 4.4.

java eclipse ide junit eclipse-plugin

9
推荐指数
2
解决办法
1598
查看次数

hibernate.org 捆绑“导入包”链接到 rt.jar 中的错误包 javax.transaction 而不是 jboss-transaction.jar

tl;博士:

  • 为什么我们的导出包指令没有被考虑,即使我们在 hibernate.org 包中导入 javax.transaction 包的版本指令仅由我们的自定义 javax.transaction-bundle 提供?
  • maven/eclipse/osgi 中是否有一些工具可以帮助理解依赖项/包的解析?
  • 我们使用的是Eclipse4,jdk1.8
  • 在调试问题时,很明显,javax.transaction 仅由 SystemBundleLoader 提供,而不是由我们自定义的 javax.transaction-Bundle 的 BundleLoader 提供。

长版:我们目前正在尝试从我们所有的 3rd 方库中创建 OSGi 包,方法是基本上使用 bnd 工具重新打包它们。当(重新)打包 hibernate.org (5.3.7) 时,我们面临 hibernate.org 库的导入包指令的问题(java.lang.NoClassDefFoundError: javax/transaction/SystemException)。

  • hibernate.org 库导入一个名为 javax.transaction 的包
  • 这个包由 javax.transaction 的 jboss 变体提供,我们将这个库重新打包在一个名为“javax.transaction”的工件中,当然导出所需的包。
  • java 运行时(rt.jar,jdk 1.8.0_221)提供了相同的包,称为“javax.transaction”,但类更少

在我们的 maven 构建中,当运行 surefire 插件来执行我们的插件测试时,我们遇到了 java.lang.NoClassDefFoundError。

Jenkins 控制台日志中部分减少的堆栈跟踪如下所示(表明使用 hibernate 激活包失败):

!ENTRY org.eclipse.osgi 4 0 2020-01-30 11:39:27.329!MESSAGE An error occurred while automatically activating bundle some.company.bundle (51).
!STACK 0
org.osgi.framework.BundleException: Exception in some.other.company.bundle.Activator.start() of bundle some.other.company.bundle
    at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:803) …
Run Code Online (Sandbox Code Playgroud)

java osgi hibernate maven-surefire-plugin

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