用pom.xml中的值替换占位符名称

问题描述

我正在与多模块项目一起工作,我想将占位符放置在pom.xml中,以便我们的团队成员可以使用命令行构建自己的war / jar,而无需在父pom和子pom中对版本进行硬编码。当前问题是.m2文件夹中的占位符值未更新。请帮助我解决这个问题。

解决方法

为了更新pom文件中的占位符值,可以通过以下两个命令来完成

 mvn versions:set -DnewVersion="2.1.1"
 mvn versions:commit

完成后,您可以使用常规命令mvn packagemvn install触发构建

,

您可以将属性放在顶级项目的pom.xml中,如下所示:

<project>
  <!-- other stuff ... -->
  <properties>
    <downloadSources>true</downloadSources>
    <downloadJavadocs>true</downloadJavadocs>
    <jdo.version>3.0</jdo.version>
    <datanucleus.version>2.2.1</datanucleus.version>
  </properties>
  ...
</project>

然后在模块pom.xml中可以使用变量引用,该变量引用将替换为实际值。例如:

<dependency>
  <groupId>org.datanucleus</groupId>
  <artifactId>datanucleus-core</artifactId>
  <version>${datanucleus.version}</version>
</dependency>