重用maven配置

时间:2012-06-21 05:44:37

标签: maven maven-3 m2eclipse profiles

在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服务器重用。

2 个答案:

答案 0 :(得分:0)

您需要查看maven pom<dependencyManagement><pluginManagement>配置才能实现此目的。您可以查看dependency managementbuild profiles上的maven笔记(后者已过时)。

您可能会遇到挑战externalizing个人资料,具体取决于您的要求类型。

答案 1 :(得分:0)

这实际上是一个很好而有趣的问题。

简而言之,没有什么好方法可以达到你想要的效果。您正在寻找的东西类似于混合用于共享配置,但在Maven(当前)中共享配置的主要方式主要是继承。

因此,您可以做的最好的事情是,将所有这些共享配置放在父POM中,然后使用Profile打开/关闭。但是,如果您想在一个模块中打开但在另一个模块中关闭可能会很困难。

混合仅可用作依赖范围导入。但是使用相当有限(仅影响dependencyManagement)。您可以查看它是否可以帮助满足您的部分要求。