java - 有什么方法可以从协调器(非父)pom 指定模块属性吗?

标签 java maven pom.xml

我有一个多模块 Maven 3 项目,其中有一个协调器/构建 pom,其唯一的工作是运行 Maven 构建。每个模块都已经有其父 pom,但没有一个是此 Orchestrator pom。

在 Orchestrator pom 中是否有任何方法可以设置/指定模块将使用的属性值?由于模块不继承 Orchestrator pom,因此它们不知道其中设置/指定的任何属性值(例如:${buildEngine} 或 ${cluster})。

例如:

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.sbic</groupId>
    <artifactId>builder</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>Orchestrator Pom</name>

    <properties>
        <buildEngine>Geronimo</buildEngine>
        <cluster>peanuts</cluster>
    </properties>

    <modules>
        <!-- Supert POM Component Versionning -->
        <module>SbiComMavenCommon</module>

        <!-- Projects -->

        <module>../AlertServices</module>
        <module>../Configuration</module>
        <module>../Core</module>
    </modules>
</project>

为了构建我的项目,我只需在此构建器 pom 上调用 mvn package 即可。

我正在寻找的是能够在此构建器 pom 中指定属性,然后模块将使用这些属性,要求模块在其父树中包含此 pom。

例如,可以完成以下任务(显然不是有效的 pom 语法):

<module>
   ../Core
   <properties>
     <name>SomeValue</name>
     <server>192.168.1.2</server>
   </properties>
</module>

最佳答案

据我所知,没有直接的方法可以使用 Maven 来做到这一点。但是,有一个解决方法 - 使用 properties:set-system-properties来自 Properties Maven 插件

当然,对于任何全局共享可变状态,需要注意。例如,不尊重模块父/子关系。尽管看起来你无论如何都想要它

关于java - 有什么方法可以从协调器(非父)pom 指定模块属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28047582/

相关文章:

java - 内部类扩展

java - 播放 jar 中的 wav 文件 - java netbeans

maven - 运行单个 Maven 插件执行?

maven - 未知包 : mule-module error after running mvn archetype for cloud connector creation via DevKit

java - 无法从 pom.xml 执行 mainClass

java - 如何缓存列表中对象属性的查找?

Java搜索字符串内容以进行部分匹配

Maven 3.2.2 不使用 -ep 或 -emp 提示输入密码,但 apache.org 表示应该

java - Maven 在创建 war/jat 时忽略资源文件。如何强制它包含它们?

java - 清理未关闭的 ZipFile 以在 excel 文件中归档