【问题标题】:Deploying artifacts in nexus from maven gives error "Return code is: 401"?从 maven 在 nexus 中部署工件会出现错误“返回代码为:401”?
【发布时间】:2014-01-01 10:17:34
【问题描述】:

在 nexus 中部署时出现 401 错误。我没有对已安装的 nexus 进行任何更改。 Nexus 在localhost:8080/nexus 上运行,我可以使用默认用户/密码登录。当我运行 mvn deploy 时,我收到了这个错误。

这是我的 POM。

 <groupId>testproject</groupId>
 <artifactId>testproject</artifactId>
 <packaging>jar</packaging>
 <version>1.0-SNAPSHOT</version>
 <name>testproject</name>
 <url>http://maven.apache.org</url>
 <distributionManagement>
  <repository>
      <id>releases</id>
      <url>http://localhost:8080/nexus/content/repositories/releases</url>
    </repository>
    <snapshotRepository>
       <id>snapshots</id>
       <url>http://localhost:8080/nexus/content/repositories/snapshots</url>
    </snapshotRepository>
</distributionManagement>
<dependencies>
 .........
</dependencies>

和 ~/.m2/settings.xml

<servers>
    <server>
        <id>snapshots</id>
        <username>deployment</username>
        <password>deployment123</password>
    </server>
    <server>
        <id>releases</id>
        <username>deployment</username>
        <password>deployment123</password>
    </server>
</servers>

例外:

Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-           deploy) on project testproject: Failed to deploy artifacts: Could not transfer artifact testproject:testproject:jar:1.0-20131213.150615-1 from/to snapshots (http://localhost:8080/nexus/content/repositories/snapshots): Failed to transfer file: http://localhost:8080/nexus/content/repositories/snapshots/testproject/testproject/1.0-SNAPSHOT/testproject-1.0-20131213.150615-1.jar. 
Return code is: 401 -> [Help 1]

请帮帮我。

【问题讨论】:

  • Failed to transfer file: http://localhost:8080/nexus/content/repositories/snapshots/testproject/testproject/1.0-SNAPSHOT/testproject-1.0-20131213.150615-1.jar. 文件存在吗?
  • 不,它没有上传到 nexus。但存在于我的本地目标目录中。

标签: maven nexus


【解决方案1】:

您用于快照部署的用户需要具有以下权限的角色:

  • nx-repository-view-maven2-maven-snapshots-read
  • nx-repository-view-maven2-maven-snapshots-edit
  • nx-repository-view-maven2-maven-snapshots-add

【讨论】:

    【解决方案2】:

    它现在正在工作。需要编辑${MVN_HOME}/conf/settings.xml 而不是/home/{user}/.m2/settings.xml

    【讨论】:

    • 这表明您以不同于“用户”的用户身份运行 maven 执行。你不应该这样做。
    • @Gangaraju 男人你真棒,你拯救了我的一天,但我不明白为什么 /home/user/.m2/settings.xml 有效
    • 感谢@AdnenChouibi,@HaithemRihane。我没有花太多时间在它上面,因为它解决了我的问题。我的观察是,如果我们使用apt-get install 安装 maven,它就可以工作,如果我们解压缩 maven tar 并导出到 $PATH,它就不能工作。
    • 我收到 413 错误,我检查了 /home/user 下的 settings.xml 文件是否正在使用。任何线索这里可能出了什么问题。当我尝试使用 maven 命令行使用独立项目上传 jar 时发生这种情况
    • 找到 {MVN_HOME} - mvn --version
    【解决方案3】:

    我的.m2/settings.xml 上缺少&lt;servers&gt; 标签 Gitlab-ci + MAVEN + Jfrog Artifactory:

    我的 gitlab-ci.yxml

    Artifactory_deploy:
      stage: install
      only:
        - desarrollo
      script:
        - echo "Deploying to Artifactory"
        - cd $CLONE_DIR
        - mvn -X deploy
    

    我的 .m2/settings.xml

    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                          https://maven.apache.org/xsd/settings-1.0.0.xsd">
      <servers>
        <server>
          <username>${ARTIFACTORY_USER}</username>
          <password>${ARTIFACTORY_PASSWORD}</password>
          <id>central</id>
        </server>
        <server>
          <username>${ARTIFACTORY_USER}</username>
          <password>${ARTIFACTORY_PASSWORD}</password>
          <id>snapshots</id>
        </server>
      </servers>
      <profiles>
        <profile>
        <id>develop</id>
          <properties>
            <artifactory.ip>${ARTIFACTORY_IP}</artifactory.ip>
            <artifactory.port>${ARTIFACTORY_PORT}</artifactory.port>
          </properties>
        <repositories>
            <repository>
              <snapshots>
                <enabled>false</enabled>
              </snapshots>
              <id>central</id>
              <name>libs-release</name>
              <username>admin</username>
              <password>THISWASMYENCRYPTEDPASSWORD</password>
              <url>http://${ARTIFACTORY_IP}:${ARTIFACTORY_PORT}/artifactory/libs-release</url>
            </repository>
            <repository>
              <snapshots />
              <id>snapshots</id>
              <name>libs-snapshot</name>
              <username>admin</username>
              <password>THISWASMYENCRYPTEDPASSWORD</password>
              <url>http://${ARTIFACTORY_IP}:${ARTIFACTORY_PORT}/artifactory/libs-snapshot</url>
            </repository>
          </repositories>
          <pluginRepositories>
            <pluginRepository>
              <snapshots>
                <enabled>false</enabled>
              </snapshots>
              <id>central</id>
              <name>libs-release</name>
              <username>admin</username>
              <password>password</password>
              <url>http://${ARTIFACTORY_IP}:${ARTIFACTORY_PORT}/artifactory/libs-release</url>
            </pluginRepository>
            <pluginRepository>
              <snapshots />
              <id>snapshots</id>
              <name>libs-snapshot</name>
              <username>admin</username>
              <password>password</password>
              <url>http://${ARTIFACTORY_IP}:${ARTIFACTORY_PORT}/artifactory/libs-snapshot</url>
            </pluginRepository>
          </pluginRepositories>
        </profile>
      </profiles>
    <activeProfiles>
       <activeProfile>develop</activeProfile>
     </activeProfiles>
    </settings>
    
    
    <servers>
        <server>
            <id>snapshots</id>
            <username>deployment</username>
            <password>deployment123</password>
        </server>
        <server>
            <id>releases</id>
            <username>deployment</username>
            <password>deployment123</password>
        </server>
    </servers>
    

    【讨论】:

      【解决方案4】:

      HTTP 401 是“未授权”的状态代码,这意味着您的deployment 用户无权将工件上传到 Nexus 中的特定存储库。登录 Nexus 并为 deployment 用户提供更改该快照存储库所需的角色。

      【讨论】:

        猜你喜欢
        • 2021-12-11
        • 1970-01-01
        • 2019-05-11
        • 1970-01-01
        • 2013-09-10
        • 2012-06-27
        • 2018-02-13
        • 2020-08-15
        相关资源
        最近更新 更多