我有一个多模块项目,如下所示
集成项目(pax-exam测试)引用了Child1和Child2,因此recator顺序为:
但是需要在运行时使用Child3(osgi-bundle)并且因为还没有安装Child3而失败。
如果我在父pom的我的部分中最后指定了Integration项目,那么一切正常,但是一旦添加了新项目,它将被添加到该部分的最后,并且将再次失败
无论如何都要强制最后建造/安装一个项目,即。在此确定的覆盖反应堆订单http://maven.apache.org/guides/mini/guide-multiple-modules.html?
我已尝试过failafe插件,但似乎只在单元测试INSIDE当前项目而不是整个堆栈后运行集成测试。
由于
更新:
每次添加新的子项目时,我都不想添加依赖项到Integration项目,只是为了让Integration项目最后安装。然后,更容易记住在父pom模块部分的列表中最后移动Integration模块。
已经使用从pax-exam加载的features.xml文件处理了依赖项。
答案 0 :(得分:1)
项目之间的依赖关系应该在POM的依赖关系部分处理。
如果仅在运行时需要依赖项,而不是在编译时,则添加
<scope>runtime</scope>
到依赖声明。
http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
答案 1 :(得分:0)
我建议将Child3添加到Integration依赖项(我建议提供范围 - 这意味着包括在编译时,但不包括在运行时)。此外,如果您不希望在Integration的传递依赖项中使用Child3,则可以添加可选标记。这是一个例子:
<dependencies>
<dependency>
<groupId>someGroupId</groupId>
<artifactId>Child3</artifactId>
<version>someVersion</version>
<scope>provided</scope>
<optional>true</optional>
</dependency>
</dependencies>