1

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

4

2 回答 2

0

你会想看看maven pom<dependencyManagement>的配置来实现这一点。您可以查看有关依赖管理构建配置文件的 maven 注释(后者已过时)。<pluginManagement>

根据您的要求类型,您可能有一个挑战externalizing配置文件。

于 2012-06-21T06:09:40.950 回答
0

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

简而言之,没有什么好方法可以实现你想要的。您正在寻找的是用于共享配置的 Mix-in,但在 Maven(当前)中共享配置的主要方式主要是通过继承。

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

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

于 2013-09-05T08:12:26.173 回答