【问题标题】:Jenkins maven release goes to lib-snapshot repositoryJenkins maven 发布到 lib-snapshot 存储库
【发布时间】:2019-09-28 10:47:40
【问题描述】:

我正在设置使用 Jenkins 将 maven 项目发布到工件的位置。我看到 maven release 所做的一切工作正常,比如增加 pom 版本、创建标签,但它没有上传到 lib-release 存储库,而是将其上传到 lib-snapshot 存储库。

我验证了我的 settings.xml,发现它使用不同的 id 进行快照和发布 repo。我还可以检查什么来解决此问题?

这是我的 settings.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--<settings.version>1.0.1</settings.version>-->
<!--<settings.region>IL</settings.region>-->
<!--<settings.type>server</settings.type>-->
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <servers>
    <server>
      <id>artifactory_server</id>
      <username>deploy_user</username>
      <password>xxxxxxxxxxxxxxxxxxx</password>
    </server>
  </servers>
  <profiles>
    <profile>
      <repositories>
        <repository>
          <snapshots />
          <releases>
            <enabled>false</enabled>
          </releases>
          <id>artifactory-snapshots</id>
          <name>libs-snapshot</name>
          <url>http://artifactory.example.com/artifactory/libs-snapshot</url>
        </repository>
        <repository>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <id>artifactory-release</id>
          <name>libs-release</name>
          <url>http://artifactory.example.com/artifactory/libs-release</url>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <releases>
            <enabled>true</enabled>
          </releases>
          <id>central</id>
          <name>plugins-release</name>
          <url>http://artifactory.example.com/artifactory/plugins-release</url>
        </pluginRepository>
        <pluginRepository>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
          <releases>
            <enabled>false</enabled>
          </releases>
          <id>snapshots</id>
          <name>plugins-snapshot</name>
          <url>http://artifactory.example.com/artifactory/plugins-snapshot</url>
        </pluginRepository>
      </pluginRepositories>
      <id>artifactory</id>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>artifactory</activeProfile>
  </activeProfiles>
</settings>

【问题讨论】:

    标签: maven jenkins release snapshot maven-release-plugin


    【解决方案1】:

    这完全取决于 Maven 和 POM 定义。 默认情况下,每个 Jenkins 运行都作为快照受到威胁,但您可以通过以下方式控制它们 具有

    的存储库
    <snapshots>
       <enabled>false</enabled>
    </snapshots>
    

    并使用 maven-release-plugin https://maven.apache.org/maven-release/maven-release-plugin/examples/prepare-release.html

    【讨论】:

    • 我已经在使用 Maven 发布插件,它在我执行发布时部署到 libs-snapshot 而不是 libs-release。我已经粘贴了我的 settings.xml 文件
    猜你喜欢
    • 2017-09-18
    • 2015-06-06
    • 1970-01-01
    • 2014-10-07
    • 2011-12-04
    • 1970-01-01
    • 2011-05-05
    • 2016-04-19
    • 2012-09-16
    相关资源
    最近更新 更多