Java 设置OSGi存储目录(org.OSGi.framework.storage)在Maven触发的JUnit测试中不起作用
在我的代码中,我使用Java 设置OSGi存储目录(org.OSGi.framework.storage)在Maven触发的JUnit测试中不起作用,java,maven,junit,osgi,equinox,Java,Maven,Junit,Osgi,Equinox,在我的代码中,我使用EquinoxFactory启动了多个OSGi框架。通过将属性“org.osgi.framework.storage”设置为“@user.home/osgi frameworks/framework-x”,其中每个框架的x不同,每个框架使用不同的目录: frameworkProperties.put("osgi.clean", "true"); frameworkProperties.put("osgi.console", "true"); frameworkProperti
EquinoxFactory
启动了多个OSGi框架。通过将属性“org.osgi.framework.storage”
设置为“@user.home/osgi frameworks/framework-x”
,其中每个框架的x
不同,每个框架使用不同的目录:
frameworkProperties.put("osgi.clean", "true");
frameworkProperties.put("osgi.console", "true");
frameworkProperties.put("org.osgi.framework.storage",
"@user.home/osgi-frameworks/osgi-framework-"
+ numberOfFramework);
framework = new EquinoxFactory().newFramework(frameworkProperties)
这在运行实际应用程序时非常有效。IDE中的JUnit测试运行起来也没有任何问题
但是,当我为我的项目启动Maven构建时,JUnit测试失败,因为所有框架都使用相同的目录(“osgi框架/framework-0”
)
我向应用程序添加了日志记录,以检查属性“org.osgi.framework.storage”在osgi属性映射中是否真的有不同的值。日志中的所有内容看起来都很好,但在检查文件空间时,只创建了一个目录
因为我想在Jenkins中包含应用程序,所以我不想跳过测试
有人知道会出什么问题吗?我必须为框架设置其他参数吗?IDE中的Junit和Maven中的Junit有很大的区别吗?您在哪里添加了日志记录?你确定你正在记录框架实际使用的属性值吗?只是好奇,我想用osgi和rcp应用程序启动headless构建。您是如何进行这个构建过程的,您是否正在使用maven与OSIG的集成?