【发布时间】:2023-03-17 13:55:01
【问题描述】:
我有用于存储 Nexus 快照的快照存储库。构建管道由 Jenkins 和构建作业组成。此构建作业的目的是将工件(war 文件)部署到 nexus。一切正常,但我想重命名输出战争。战争文件名的结构如下:
artifactName-version-date.anynumbers-anynumber.war
(example-1.0.1-20140925-120156-3.war)
我尝试在构建配置中使用 maven-war-plugin 设置战争名称。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<warName>${build.name}</warName>
</configuration>
</plugin>
所需的战争名称应采用格式,例如example-en-1.0.1-20140925-120156-3.war1,其中 en 是构建配置文件。属性 build.name 设置为值 example-en。但此配置被忽略,war 文件仍以不合需要的格式存储到 Nexus。
当我查看构建日志时,有关于成功将战争文件上传到 Nexus 存储库的日志,并且战争文件的名称不好。所以不知道哪里配置错了。
Maven 命令是mvn clean deploy -P en
编辑:
这是控制台日志的一部分,其中example-en.war 被复制到詹金斯工作区。这是正确的,但在最后一步上传了不同文件名的war文件。
[INFO]
[INFO] --- maven-war-plugin:2.0.2:war (default-war) @ example ---
[INFO] Exploding webapp...
[INFO] Assembling webapp example in /var/lib/jenkins/workspace/build/example/target/example-sk
[INFO] Copy webapp webResources to /var/lib/jenkins/workspace/build/example/target/example-sk
[INFO] Generating war /var/lib/jenkins/workspace/build/example/target/example-sk.war
[INFO] Building war: /var/lib/jenkins/workspace/build/example/target/example-sk.war
[INFO]
[INFO] --- maven-install-plugin:2.3:install (default-install) @ example ---
[INFO] Installing /var/lib/jenkins/workspace/build/example/target/example-sk.war to /var/lib/jenkins/.m2/repository/com/example/example/1.0.1-SNAPSHOT/example-1.0.1-SNAPSHOT.war
[INFO] Installing /var/lib/jenkins/workspace/build/example/pom.xml to /var/lib/jenkins/.m2/repository/com/example/example/1.0.1-SNAPSHOT/example-1.0.1-SNAPSHOT.pom
[INFO]
[INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) @ example ---
Downloading: http://127.0.0.1:8082/nexus/content/repositories/example-snapshots/com/example/example/1.0.1-SNAPSHOT/maven-metadata.xml
774/774 B
Downloaded: http://127.0.0.1:8082/nexus/content/repositories/example-snapshots/com/example/example/1.0.1-SNAPSHOT/maven-metadata.xml (774 B at 3.4 KB/sec)
Uploading: http://127.0.0.1:8082/nexus/content/repositories/example-snapshots/com/example/example/1.0.1-SNAPSHOT/example-1.0.1-20140925.120156-3.war
【问题讨论】:
-
首先你为什么喜欢像
engine-en-1.0-SNAPSHOT.war1那样改变目标名称?本地存储库中的安装看起来像example-1.0.1-SNAPSHOT.war?为什么要将名称更改为whatever.war1?此外,您不能更改存储库管理器中使用的名称。我不明白的是你为什么要改名字? -
因为不同配置文件的每个构建都会创建不同的战争,我想改变这些战争。例如engine-en-1.0-SNAPSHOT.war1、engine-de-1.0-SNAPSHOT.war1、engine-es-1.0-SNAPSHOT.war1。现在没有任何相关信息。