在maven中创建可重用依赖关系定义和配置文件的最佳方法是什么?
我想将集成测试的依赖项和配置文件外部化到一个单独的pom,它可以包含在其他maven项目中(不是从单个父pom继承)。稍后,我可以在从控制台和eclipse运行不同应用程序服务器上的集成测试时激活配置文件。
integrations-tests
pom.xml (contains Arquillian dependencies and profiles)
profile:jboss-remote
profile:tomcat-embedded
dependencies:Arquillian,Java EE,MavenShrinkWrap etc.
project1
pom.xml
dependency:integration-tests (or other way to include)
project2
module1
pom.xml
dependency:integration-tests (or other way to include)
mvn test -P jboss-remote (profile from integrations-tests)
mvn test -P tomcat-embedded (profile from integrations-tests)
我不想搞乱本地settings.xml,因为配置文件应该可以被许多开发人员和CI服务器重用。
答案 0 :(得分:0)
您需要查看maven pom的<dependencyManagement>
和<pluginManagement>
配置才能实现此目的。您可以查看dependency management和build profiles上的maven笔记(后者已过时)。
您可能会遇到挑战externalizing
个人资料,具体取决于您的要求类型。
答案 1 :(得分:0)
这实际上是一个很好而有趣的问题。
简而言之,没有什么好方法可以达到你想要的效果。您正在寻找的东西类似于混合用于共享配置,但在Maven(当前)中共享配置的主要方式主要是继承。
因此,您可以做的最好的事情是,将所有这些共享配置放在父POM中,然后使用Profile打开/关闭。但是,如果您想在一个模块中打开但在另一个模块中关闭可能会很困难。
混合仅可用作依赖范围导入。但是使用相当有限(仅影响dependencyManagement)。您可以查看它是否可以帮助满足您的部分要求。