我有快照存储库,用于存储Nexus的快照。构建管道由Jenkins和构建作业组成。此构建作业的目的是将工件(war文件)部署到nexus。一切正常,但我想重命名输出战争。战争文件名具有以下结构:
artifactName-version-date.anynumbers-anynumber.war
(example-1.0.1-20140925-120156-3.war)
我尝试在构建配置中使用maven-war-plugin设置war name。
<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。
当我查看构建日志时,有关于成功上传war文件到Nexus存储库的日志,并且有一个错误的war文件名。所以我不知道配置错误。
Maven命令是mvn clean deploy -P en
修改
以下是控制台日志的一部分,其中example-en.war
被复制到jenkins工作区。这是正确的,但在最后一步是上传带有不同文件名的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
答案 0 :(得分:1)
我认为你应该研究Nexus存储库设置。您是否曾尝试手动上传任何内容?您可以看到,无论文件名是什么,将其上传到Nexus存储库后,都可以下载为&#34; $ {artifactId} - $ {version} - $ {classifier}。$ {packaging}& #34;
很遗憾,我现在无法访问Nexus,但我无法检查是否可以将其设置为保留名称。
第二种方法是将标记设置为所需的格式(因为它接受变量$ {}),这将是Nexus命名约定的变通方法(如果我没记错的话,将版本部分中的变量视为已弃用)。
答案 1 :(得分:0)
您无需为此添加插件。只需将<finalName>
添加到<build>..</build>
,就像这样
<build>
<finalName>example-en-${build.name}</finalName>
......
</build>