从maven在nexus中部署工件会出现错误“返回代码是:401”?

时间:2013-12-13 15:24:14

标签: maven nexus

在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]

请帮帮我。

4 个答案:

答案 0 :(得分:18)

现在正在运作。需要修改${MVN_HOME}/conf/settings.xml而不是/home/{user}/.m2/settings.xml

答案 1 :(得分:3)

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

答案 2 :(得分:0)

  

我错过了<servers>上的.m2/settings.xml标记   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>

答案 3 :(得分:0)

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

  • nx-repository-view-maven2-maven-snapshots-read
  • nx-repository-view-maven2-maven-snapshots-edit
  • nx-repository-view-maven2-maven-snapshots-add
相关问题