Jenkins maven将jar部署到nexus - artifact命名

She*_*jie 6 nexus maven jenkins

我的java/maven项目叫做"testproject",它与我的jenkins和nexus repo联系在一起:

我的pom.xml看起来像:

....    
<distributionManagement>
    <!-- use the following if you're not using a snapshot version. -->
    <repository>
        <id>nexus</id>
        <name>RepositoryProxy</name>
        <url>http://nexus:8080/nexus/content/repositories/releases</url>
    </repository>
    <!-- use the following if you ARE using a snapshot version. -->
    <snapshotRepository>
        <id>nexus</id>
        <name>RepositoryProxy</name>
        <url>http://nexus:8080/nexus/content/repositories/snapshots</url>
    </snapshotRepository>
</distributionManagement>
......
Run Code Online (Sandbox Code Playgroud)

在我的jenkins设置中,我有:

Build - maven3 - clean deploy
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,jenkins将工件上传到jenkins构建的控制台输出的Nexus.Look,如下所示:

[INFO] --- maven-jar-plugin:2.3.1:jar (default-jar) @ testproject ---
[INFO] Building jar: /var/lib/jenkins/workspace/testproject/target/testproject-0.1-SNAPSHOT.jar
[INFO] 
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ testproject ---
[INFO] Installing /var/lib/jenkins/workspace/testproject/target/testproject-0.1-SNAPSHOT.jar to /var/lib/jenkins/.m2/repository/com/dummy/testproject/0.1-SNAPSHOT/testproject-0.1-   SNAPSHOT.jar
[INFO] Installing /var/lib/jenkins/workspace/testproject/pom.xml to /var/lib/jenkins/.m2/repository/com/dummy/testproject/0.1-SNAPSHOT/testproject-0.1-SNAPSHOT.pom
[INFO] 
[INFO] --- maven-deploy-plugin:2.5:deploy (default-deploy) @ testproject ---
Downloading: http://nexus:8080/nexus/content/repositories/snapshots/com/dummy/testproject/0.1-SNAPSHOT/maven-metadata.xml
Downloaded: http://nexus:8080/nexus/content/repositories/snapshots/com/dummy/testproject/0.1-SNAPSHOT/maven-metadata.xml (1012 B at 28.2 KB/sec)
Uploading: http://nexus:8080/nexus/content/repositories/snapshots/com/dummy/testproject/0.1-SNAPSHOT/testproject-0.1-20120509.161644-74.jar
Uploaded: http://nexus:8080/nexus/content/repositories/snapshots/com/dummy/testproject/0.1-SNAPSHOT/testproject-0.1-20120509.161644-74.jar (47 KB at 748.5 KB/sec)
Uploading: http://nexus:8080/nexus/content/repositories/snapshots/com/dummy/testproject/0.1-SNAPSHOT/testproject-0.1-20120509.161644-74.pom
Uploaded: http://nexus:8080/nexus/content/repositories/snapshots/com/dummy/testproject/0.1-SNAPSHOT/testproject-0.1-20120509.161644-74.pom (6 KB at 149.3 KB/sec)
Run Code Online (Sandbox Code Playgroud)

问题是:

鉴于我在pom.xml中指定的版本是

<version>0.1-SNAPSHOT</version>
Run Code Online (Sandbox Code Playgroud)
  1. 为什么jenkins将testproject- 0.1-20120509.161644-74 .jar 上传到Nexus?20120509.161644-74来自哪里?

  2. 如果时间戳20120509.161644-74是由jenkins在上传之前生成的,我可以配置它的格式吗?我想要像testproject-01 - $ {timestamp} - $ {reversionId} .jar

Beh*_*ehe 8

行家部署插件页面告诉"默认情况下,当一个工件的快照版本部署到仓库,时间戳作为后缀为".所以,它是在你打电话时由插件创建的mvn deploy.

我不知道你想要的是什么2)是可能的.我认为这可能会给maven造成一些麻烦.

当您使用具有SNAPSHOT依赖项的maven时,时间戳用于检查SNAPSHOT的最新版本.更改快照的格式可能会导致此机制失败.

  • 还有一件事:自从maven 3以来,只有这样,还有一些[info](http://stackoverflow.com/questions/4275466/how-do-you-deal-with-maven-3-timestamped-snapshots-efficiently ) (2认同)