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

标签 maven jenkins nexus

我的名为“testproject”的 java/maven 项目与我的 jenkins 和 nexus 存储库相关联:

我的 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>
......

在我的 Jenkins 设置中,我有:
Build - maven3 - clean deploy

正如预期的那样,jenkins 将 Artifact 上传到 Nexus。查看 jenkins 构建的控制台输出,如下所示:
[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)

问题是 :

鉴于我在 pom.xml 中指定的版本是
<version>0.1-SNAPSHOT</version>
  • jenkins 怎么上传 testproject- 0.1-20120509.161644-74 .jar 到 Nexus? 20120509.161644-74 的东西从哪里来?
  • 如果时间戳 20120509.161644-74 是jenkins在上传之前生成的,我可以配置它的格式吗?我想要类似 testproject-01-${timestamp}-${reversionId}.jar
  • 的东西

    最佳答案

    maven deploy plugin page告诉“默认情况下,将 Artifact 的快照版本部署到存储库时,会为其添加时间戳”。因此,当您调用 mvn deploy 时,它是由插件创建的。 .

    我不知道您在 2) 中想要的是否可行。我认为这可能会给 maven 带来一些麻烦。

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

    关于maven - Jenkins maven 将 jar 部署到 nexus - Artifact 命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10533670/

    相关文章:

    nexus - Sonatype Nexus - 无法再使用管理员用户登录

    java - 将 jar Artifact 部署到 Nexus 会导致内容类型不匹配

    maven - gradle是否使用.m2/settings.xml中的镜像设置

    java - 如何使用特定的库构建maven项目?

    jenkins - 如何将变量传递给 JenkinsFiles 中的凭证参数?

    maven repository setting.xml 镜像

    java - 类加载器行为 : java -cp jars vs adding maven dependency in pom

    java - 如何从依赖项中删除确切的用法?

    java - maven - 构建一个项目而不显式构建另一个(依赖)项目

    maven - 如何在 Jenkins 上部署我的 Spring Boot 项目?