如何使用 maven 打包特定版本?

Bas*_*stl 4 maven-2 maven

我想打电话

mvn clean install -Dsomeproperty=1.2.3-20110526-1836
Run Code Online (Sandbox Code Playgroud)

要得到

artifact-1.2.3-20110526-1836.jar
Run Code Online (Sandbox Code Playgroud)

代替

artifact-1.2.3-SNAPSHOT.jar
Run Code Online (Sandbox Code Playgroud)

我怎样才能将该时间戳传递给 maven ?

Vij*_*jay 5

pom.xml 中的以下工件设置似乎正在执行您想要的操作:

<groupId>testgroup</groupId>
<artifactId>testartifact</artifactId>
<version>${someproperty}</version>
Run Code Online (Sandbox Code Playgroud)

现在,如果您执行“mvn clean install -Dsomeproperty=1.1.timestamp”,生成的 jar 文件的名称中也包含时间戳。

我不确定这是否是您要找的。

编辑

另一个解决方案,因为无法更改 pom 文件。

正常执行“mvn clean install”命令。这会生成一个类似于 artifact-1.2.3-SNAPSHOT.jar 的 jar 文件。

再次安装此文件 - 这次使用“mvn install:install-file -Dfile=artifact-1.2.3-SNAPSHOT.jar -DgroupId=testgroup -DartifactId=testartifact -Dversion=1.2.3-123456-1234 -Dpackaging=jar。这将在您的本地存储库中安装 artifact-1.2.3-123456-1234.jar

  • 正确的。没有注意到你对 pom 性质的要求。那我建议另一种方法。正常执行“mvn clean install”命令。这会生成一个类似于 artifact-1.2.3-SNAPSHOT.jar 的 jar 文件。现在,再次安装此文件 - 这次使用“mvn install:install-file -Dfile=artifact-1.2.3-SNAPSHOT.jar -DgroupId=testgroup -DartifactId=testartifact -Dversion=1.2.3-123456-1234 -Dpackaging= jar。这将在您的本地存储库中安装 artifact-1.2.3-123456-1234.jar。 (2认同)