web-dev-qa-db-fra.com

Pourquoi ai-je une erreur "401 Unauthorized" dans Maven?

Pourquoi ai-je une erreur «401 Unauthorized» dans Maven?

Voici l'erreur que je reçois en appelant mvn deploy (les journaux complets en bas):

[INFO] BUILD FAILURE
[ERROR] Failed to execute goal org.Apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project xbnjava: Failed to deploy artifacts: Could not transfer artifact com.github.aliteralmind:xbnjava:pom:0.1.2 from/to sonatype-nexus-staging (https://oss.sonatype.org/service/local/staging/deploy/maven2/): Failed to transfer file: https://oss.sonatype.org/service/local/staging/deploy/maven2/com/github/aliteralmind/xbnjava/0.1.2/xbnjava-0.1.2.pom. Return code is: 401, ReasonPhrase: Unauthorized. -> [Help 1]

Selon cette page de support sonatype :

"Si vous recevez un message 401, c'est parce que maven envoie les informations de connexion incorrectes ou aucune information du tout."

Vous trouverez ci-dessous la marche à suivre, les fichiers settings.xml et pom.xml complets et les fichiers journaux complets de mvn deploy et mvn deploy -e.

Toute idée serait appréciée. Je frappe juste mur après mur avec Maven.


J'ai suivi la liste de contrôle de sonatype lors de la réception d'une erreur 401:

Élément de la liste de contrôle 1 . Assurez-vous que votre nom d'utilisateur/mot de passe est correct en vous connectant à l'interface utilisateur de Nexus. Si curl est installé sur votre ordinateur, vous pouvez essayer de déployer un artefact avec ...

  • Je me suis connecté et déconnecté avec succès du site Web sonatype.org, en utilisant le nom d'utilisateur/passe dans settings.xml.
  • Je tenté d'utiliser curl pour déployer manuellement un artefact, à l'aide de la commande

[C:\]curl -u MY_SONATYPE_DOT_COM_USERNAME:MY_SONATYPE_DOT_COM_PASSWORD https://oss.sonatype.org/content/repositories/snapshots/com/github/aliteralmind/xbnjava/0.1.2-SNAPSHOT/xbnjava-0.1.2-20140716.224928-1.pom --request PUT --data @pom.xml

mais j'ai cette erreur:

Warning: Couldn't read data from file "pom.xml", this makes an empty POST.
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.

Je l'ai relancé avec l'option -k, et cette fois, je n'ai eu que ceci:

Couldn't read data from file "pom.xml", this makes an empty POST.

Je n'avais jamais utilisé curl auparavant, alors je ne sais pas quoi faire avec ces informations.

Élément de la liste de contrôle 2 . S'il n'y a pas d'erreur, assurez-vous que vos privilèges utilisateur sont correctement configurés sur le serveur. Assurez-vous de supprimer le référentiel que vous venez de créer.

Je ne sais pas ce que "laisser tomber" signifie. Je pense que mes privilèges sont correctement installés car j'ai reçu ce message de sonatype:

et j'ai ai réussi à mettre ces éléments sur le serveur via mvn deploy au cours des deux derniers jours.

Les paramètres du projet:

project settings

Point de contrôle 3 . Assurez-vous que vous avez configuré un serveur dans settings.xml et que son identifiant est identique à celui du référentiel de distribution dans pom.xml.

  • Dans settings.xml, settings/servers/server/id est égal à ossrh
  • Dans pom.xml, distributionManagement/snapshotRepository/id est égal à ossrh

(les fichiers complets sont en bas)

Élément de la liste de contrôle 4 . Assurez-vous que votre fichier settings.xml est au bon endroit (normalement, il s'agit de _ ~/.m2/settings.xml). Vous pouvez le vérifier en exécutant mvn help: effective-settings.

Selon la référence settings de Maven , settings.xml doit se trouver à l'un des deux emplacements suivants:

  • L'installation de Maven: $M2_HOME/conf/settings.xml
  • Une installation utilisateur: ${user.home}/.m2/settings.xml

Voici ma configuration:

  • settings.xml: C:\applications\programming\Apache-maven-3.2.2\conf\settings.xml
  • M2_HOME est C:\applications\programming\Apache-maven-3.2.2

Sortie pour mvn help:effective-settings:

[C:\applications\utilities\curl]
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-help-plugin:2.2:effective-settings (default-cli) @ standalone-pom ---
[INFO]
Effective user-specific configuration settings:

<?xml version="1.0" encoding="UTF-8"?>
<!-- ====================================================================== -->
<!--                                                                        -->
<!-- Generated by Maven Help Plugin on 2014-07-18T12:48:19                  -->
<!-- See: http://maven.Apache.org/plugins/maven-help-plugin/                -->
<!--                                                                        -->
<!-- ====================================================================== -->

<!-- ====================================================================== -->
<!--                                                                        -->
<!-- Effective Settings for 'jeffy' on 'Kermit-the-frog'                    -->
<!--                                                                        -->
<!-- ====================================================================== -->

<settings xmlns="http://maven.Apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sc
hemaLocation="http://maven.Apache.org/SETTINGS/1.1.0 http://maven.Apache.org/xsd/settings-1.1.0.xsd">
  <localRepository xmlns="http://maven.Apache.org/SETTINGS/1.1.0">C:\Users\jeffy\.m2\repository</localRepository
>
  <servers xmlns="http://maven.Apache.org/SETTINGS/1.1.0">
    <server>
      <username>MY_SONATYPE_DOT_COM_USERNAME</username>
      <password>***</password>
      <id>ossrh</id>
    </server>
  </servers>
  <pluginGroups xmlns="http://maven.Apache.org/SETTINGS/1.1.0">
    <pluginGroup>org.Apache.maven.plugins</pluginGroup>
    <pluginGroup>org.codehaus.mojo</pluginGroup>
  </pluginGroups>
</settings>

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.310 s
[INFO] Finished at: 2014-07-18T12:48:19-04:00
[INFO] Final Memory: 7M/17M
[INFO] ------------------------------------------------------------------------

Élément de la liste de contrôle 5 . _ {Si le serveur utilise https mais que l'URL de votre POM est http, vous obtiendrez peut-être 401 également.

Je ne comprends pas à quelle URL il s'agit.

Point de contrôle 6 . Utilisez la dernière version de Maven, car il existe un problème connu concernant 401: MNG-4469} _

J'utilise la dernière version:

[C:\]mvn -version
Apache Maven 3.2.2 (45f7c06d68e745d05611f7fd14efb6594181933e; 2014-06-17T09:51:42-04:00)
Maven home: C:\applications\programming\Apache-maven-3.2.2
Java version: 1.7.0_51, vendor: Oracle Corporation
Java home: C:\applications\programming\jdk_7_51\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", Arch: "x86", family: "windows"

------------------

Fichiers complets settings.xml et pom.xml

(Journaux complets pour mvn deploy et mvn deploy -e ci-dessous)

settings.xml:

<?xml version="1.0" encoding="UTF-8"?>
<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 http://maven.Apache.org/xsd/settings-1.0.0.xsd">
   <servers>
     <server>
       <id>ossrh</id>
       <username>MY_SONATYPE_DOT_COM_USERNAME</username>
       <password>MY_SONATYPE_DOT_COM_PASSWORD</password>
     </server>
   </servers>

   <pluginGroups></pluginGroups>
   <proxies></proxies>
   <mirrors></mirrors>
   <profiles></profiles>
</settings>

pom.xml:

<project xmlns="http://maven.Apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.github.aliteralmind</groupId>
   <artifactId>xbnjava</artifactId>
   <packaging>pom</packaging>
   <version>0.1.2</version>
   <name>XBN-Java</name>
   <url>https://github.com/aliteralmind/xbnjava</url>
   <inceptionYear>2014</inceptionYear>
   <organization>
      <name>Jeff Epstein</name>
   </organization>
   <description>XBN-Java is a collection of generically-useful backend (server side, non-GUI) programming utilities, featuring RegexReplacer and FilteredLineIterator. XBN-Java is the foundation of Codelet (http://codelet.aliteralmind.com).</description>

   <parent>
      <groupId>org.sonatype.oss</groupId>
      <artifactId>oss-parent</artifactId>
      <version>7</version>
   </parent>

   <licenses>
      <license>
         <name>Lesser General Public License (LGPL) version 3.0</name>
         <url>https://www.gnu.org/licenses/lgpl-3.0.txt</url>
      </license>
      <license>
         <name>Apache Software License (ASL) version 2.0</name>
         <url>http://www.Apache.org/licenses/LICENSE-2.0.txt</url>
      </license>
   </licenses>

   <developers>
      <developer>
         <name>Jeff Epstein</name>
         <email>[email protected]</email>
         <roles>
            <role>Lead Developer</role>
         </roles>
      </developer>
   </developers>

   <issueManagement>
      <system>GitHub Issue Tracker</system>
      <url>https://github.com/aliteralmind/xbnjava/issues</url>
   </issueManagement>

   <distributionManagement>
      <snapshotRepository>
         <id>ossrh</id>
         <url>https://oss.sonatype.org/content/repositories/snapshots</url>
      </snapshotRepository>
   </distributionManagement>

   <scm>
      <connection>scm:git:[email protected]:aliteralmind/xbnjava.git</connection>
      <url>scm:git:[email protected]:aliteralmind/xbnjava.git</url>
      <developerConnection>scm:git:[email protected]:aliteralmind/xbnjava.git</developerConnection>
   </scm>

   <properties>
      <Java.version>1.7</Java.version>
      <jarprefix>R:\jeffy\programming\build\/${project.artifactId}-${project.version}/download/${project.artifactId}-${project.version}</jarprefix>
   </properties>
<!--
  <profiles>
    <profile>
      <id>default-tools.jar</id>
      <activation>
        <property>
          <name>Java.vendor</name>
          <value>Sun Microsystems Inc.</value>
        </property>
      </activation>
      <dependencies>
        <dependency>
          <groupId>com.Sun</groupId>
          <artifactId>tools</artifactId>
          <version>1.4.2</version>
          <scope>system</scope>
          <systemPath>${Java.home}/../lib/tools.jar</systemPath>
        </dependency>
      </dependencies>
    </profile>
  </profiles>
 -->
   <build>
      <plugins>
         <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>1.8</version>
            <executions>
               <execution>
                  <id>attach-artifacts</id>
                  <phase>package</phase>
                  <goals>
                     <goal>attach-artifact</goal>
                  </goals>
                  <configuration>
                     <artifacts>
                        <artifact>
                           <file>${jarprefix}-all.jar</file>
                           <type>jar</type>
                        </artifact>
                     </artifacts>
                  </configuration>
               </execution>
            </executions>
         </plugin>
      </plugins>
   </build>

   <profiles>
      <!--
      This profile will sign the JAR file, sources file, and javadocs file using the GPG key on the local machine.
      See: https://docs.sonatype.org/display/Repository/How+To+Generate+PGP+Signatures+With+Maven
      -->
      <profile>
         <id>release-sign-artifacts</id>
         <activation>
            <property>
               <name>release</name>
               <value>true</value>
            </property>
         </activation>
      </profile>
   </profiles>
</project>

------------------

Journaux complets pour mvn deploy et mvn deploy -e

mvn deploy sortie:

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building XBN-Java 0.1.2
[INFO] ------------------------------------------------------------------------
[INFO] --- maven-enforcer-plugin:1.0:enforce (enforce-maven) @ xbnjava ---
[INFO] --- build-helper-maven-plugin:1.8:attach-artifact (attach-artifacts) @ xbnjava ---
[INFO] --- maven-install-plugin:2.4:install (default-install) @ xbnjava ---
[INFO] Installing R:\jeffy\programming\sandbox\z__for_git_commit_only\xbnjava\pom.xml to C:\Users\jeffy\.m2\repository\com\github\aliteralmind\xbnjava\0.1.2\xbnjava-0.1.2.pom
[INFO] Installing R:\jeffy\programming\build\xbnjava-0.1.2\download\xbnjava-0.1.2-all.jar to C:\Users\jeffy\.m2\repository\com\github\aliteralmind\xbnjava\0.1.2\xbnjava-0.1.2.jar
[INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) @ xbnjava ---
Uploading: https://oss.sonatype.org/service/local/staging/deploy/maven2/com/github/aliteralmind/xbnjava/0.1.2/xbnjava-0.1.2.pom
2/6 KB
4/6 KB
6/6 KB

(Section d'échec :)

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.204 s
[INFO] Finished at: 2014-07-18T11:25:17-04:00
[INFO] Final Memory: 7M/17M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.Apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project xbnjava: Failed to deploy artifacts: Could not transfer artifact com.github.aliteralmind:xbnjava:pom:0.1.2 from/to sonatype-nexus-staging (https://oss.sonatype.org/service/local/staging/deploy/maven2/): Failed to transfer file: https://oss.sonatype.org/service/local/staging/deploy/maven2/com/github/aliteralmind/xbnjava/0.1.2/xbnjava-0.1.2.pom. Return code is: 401, ReasonPhrase: Unauthorized. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.Apache.org/confluence/display/MAVEN/MojoExecutionException

mvn deploy -e sortie:

[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building XBN-Java 0.1.2
[INFO] ------------------------------------------------------------------------
[INFO] --- maven-enforcer-plugin:1.0:enforce (enforce-maven) @ xbnjava ---
[INFO] --- build-helper-maven-plugin:1.8:attach-artifact (attach-artifacts) @ xbnjava ---
[INFO] --- maven-install-plugin:2.4:install (default-install) @ xbnjava ---
[INFO] Installing R:\jeffy\programming\sandbox\z__for_git_commit_only\xbnjava\pom.xml to C:\Users\jeffy\.m2\repository\com\github\aliteralmind\xbnjava\0.1.2\xbnjava-0.1.2.pom
[INFO] Installing R:\jeffy\programming\build\xbnjava-0.1.2\download\xbnjava-0.1.2-all.jar to C:\Users\jeffy\.m2\repository\com\github\aliteralmind\xbnjava\0.1.2\xbnjava-0.1.2.jar
[INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) @ xbnjava ---
Uploading: https://oss.sonatype.org/service/local/staging/deploy/maven2/com/github/aliteralmind/xbnjava/0.1.2/xbnjava-0.1.2.pom
2/6 KB
4/6 KB
6/6 KB

(Section d'échec :)

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.492 s
[INFO] Finished at: 2014-07-18T11:25:37-04:00
[INFO] Final Memory: 7M/17M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.Apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project xbnjava: Failed to deploy artifacts: Could not transfer artifact com.github.aliteralmind:xbnjava:pom:0.1.2 from/to sonatype-nexus-staging (https://oss.sonatype.org/service/local/staging/deploy/maven2/): Failed to transfer file: https://oss.sonatype.org/service/local/staging/deploy/maven2/com/github/aliteralmind/xbnjava/0.1.2/xbnjava-0.1.2.pom. Return code is: 401, ReasonPhrase: Unauthorized. -> [Help 1]
org.Apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.Apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project xbnjava: Failed to deploy artifacts: Could not transfer artifact com.github.aliteralmind:xbnjava:pom:0.1.2 from/to sonatype-nexus-staging (https://oss.sonatype.org/service/local/staging/deploy/maven2/): Failed to transfer file: https://oss.sonatype.org/service/local/staging/deploy/maven2/com/github/aliteralmind/xbnjava/0.1.2/xbnjava-0.1.2.pom. Return code is: 401, ReasonPhrase: Unauthorized.
   at org.Apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.Java:216)
   at org.Apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.Java:153)
   at org.Apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.Java:145)
   at org.Apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.Java:116)
   at org.Apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.Java:80)
   at org.Apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.Java:51)
   at org.Apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.Java:120)
   at org.Apache.maven.DefaultMaven.doExecute(DefaultMaven.Java:347)
   at org.Apache.maven.DefaultMaven.execute(DefaultMaven.Java:154)
   at org.Apache.maven.cli.MavenCli.execute(MavenCli.Java:584)
   at org.Apache.maven.cli.MavenCli.doMain(MavenCli.Java:213)
   at org.Apache.maven.cli.MavenCli.main(MavenCli.Java:157)
   at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:57)
   at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
   at Java.lang.reflect.Method.invoke(Method.Java:606)
   at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.Java:289)
   at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.Java:229)
   at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.Java:415)
   at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.Java:356)
Caused by: org.Apache.maven.plugin.MojoExecutionException: Failed to deploy artifacts: Could not transfer artifact com.github.aliteralmind:xbnjava:pom:0.1.2 from/to sonatype-nexus-staging (https://oss.sonatype.org/service/local/staging/deploy/maven2/): Failed to transfer file: https://oss.sonatype.org/service/local/staging/deploy/maven2/com/github/aliteralmind/xbnjava/0.1.2/xbnjava-0.1.2.pom. Return code is: 401, ReasonPhrase: Unauthorized.
   at org.Apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.Java:193)
   at org.Apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.Java:132)
   at org.Apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.Java:208)
   ... 19 more
Caused by: org.Apache.maven.artifact.deployer.ArtifactDeploymentException: Failed to deploy artifacts: Could not transfer artifact com.github.aliteralmind:xbnjava:pom:0.1.2 from/to sonatype-nexus-staging (https://oss.sonatype.org/service/local/staging/deploy/maven2/): Failed to transfer file: https://oss.sonatype.org/service/local/staging/deploy/maven2/com/github/aliteralmind/xbnjava/0.1.2/xbnjava-0.1.2.pom. Return code is: 401, ReasonPhrase: Unauthorized.
   at org.Apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.Java:143)
   at org.Apache.maven.plugin.deploy.AbstractDeployMojo.deploy(AbstractDeployMojo.Java:167)
   at org.Apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.Java:149)
   ... 21 more
Caused by: org.Eclipse.aether.deployment.DeploymentException: Failed to deploy artifacts: Could not transfer artifact com.github.aliteralmind:xbnjava:pom:0.1.2 from/to sonatype-nexus-staging (https://oss.sonatype.org/service/local/staging/deploy/maven2/): Failed to transfer file: https://oss.sonatype.org/service/local/staging/deploy/maven2/com/github/aliteralmind/xbnjava/0.1.2/xbnjava-0.1.2.pom. Return code is: 401, ReasonPhrase: Unauthorized.
   at org.Eclipse.aether.internal.impl.DefaultDeployer.deploy(DefaultDeployer.Java:337)
   at org.Eclipse.aether.internal.impl.DefaultDeployer.deploy(DefaultDeployer.Java:268)
   at org.Eclipse.aether.internal.impl.DefaultRepositorySystem.deploy(DefaultRepositorySystem.Java:413)
   at org.Apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.Java:139)
   ... 23 more
Caused by: org.Eclipse.aether.transfer.ArtifactTransferException: Could not transfer artifact com.github.aliteralmind:xbnjava:pom:0.1.2 from/to sonatype-nexus-staging (https://oss.sonatype.org/service/local/staging/deploy/maven2/): Failed to transfer file: https://oss.sonatype.org/service/local/staging/deploy/maven2/com/github/aliteralmind/xbnjava/0.1.2/xbnjava-0.1.2.pom. Return code is: 401, ReasonPhrase: Unauthorized.
   at org.Eclipse.aether.connector.wagon.WagonRepositoryConnector$6.wrap(WagonRepositoryConnector.Java:1016)
   at org.Eclipse.aether.connector.wagon.WagonRepositoryConnector$6.wrap(WagonRepositoryConnector.Java:1004)
   at org.Eclipse.aether.connector.wagon.WagonRepositoryConnector$PutTask.run(WagonRepositoryConnector.Java:895)
   at org.Eclipse.aether.connector.wagon.WagonRepositoryConnector.put(WagonRepositoryConnector.Java:522)
   at org.Eclipse.aether.internal.impl.DefaultDeployer.deploy(DefaultDeployer.Java:331)
   ... 26 more
Caused by: org.Apache.maven.wagon.TransferFailedException: Failed to transfer file: https://oss.sonatype.org/service/local/staging/deploy/maven2/com/github/aliteralmind/xbnjava/0.1.2/xbnjava-0.1.2.pom. Return code is: 401, ReasonPhrase: Unauthorized.
   at org.Apache.maven.wagon.providers.http.AbstractHttpClientWagon.put(AbstractHttpClientWagon.Java:573)
   at org.Apache.maven.wagon.providers.http.AbstractHttpClientWagon.put(AbstractHttpClientWagon.Java:493)
   at org.Apache.maven.wagon.providers.http.AbstractHttpClientWagon.put(AbstractHttpClientWagon.Java:474)
   at org.Apache.maven.wagon.providers.http.AbstractHttpClientWagon.put(AbstractHttpClientWagon.Java:454)
   at org.Eclipse.aether.connector.wagon.WagonRepositoryConnector$PutTask.run(WagonRepositoryConnector.Java:871)
   ... 28 more
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.Apache.org/confluence/display/MAVEN/MojoExecutionException
94
aliteralmind

J'ai rencontré des erreurs similaires lors de la tentative de déploiement d'un artefact Gradle sur un référentiel Nexus Sonatype. Vous obtiendrez une erreur 401 Unauthorized si vous fournissez des informations d'identification incorrectes (mot de passe, etc.). Si vous essayez de publier quelque chose dans un référentiel de versions et que cette version existe déjà dans le référentiel, vous obtenez également une erreur (et vous avez aussi le code 401). Vous pouvez donc constater qu'en publiant à partir de la ligne de commande, cela fonctionne, mais que lorsque vous le faites à partir d'un script, cela échoue (car il n'existait pas dans le référentiel la première fois). Publiez à l'aide d'un numéro de version différent ou supprimez l'ancien artefact sur le serveur et republiez-le.

Le référentiel SNAPSHOTS (par opposition au référentiel des versions) vous permet d'écraser une version numérotée de manière similaire, mais votre numéro de version doit comporter "-SNAPSHOT" à la fin.

39
John

L'une des raisons de cette erreur est lorsque repositoryId n'est pas spécifié ou n'est pas spécifié correctement. Comme mentionné précédemment, il devrait être identique à celui décrit dans la section settings.xml . Quelques conseils ... Exécutez mvn avec les options -e -X et vérifiez le résultat du débogage. Il vous dira quel repositoryId il utilise:

[DEBUG]   (f) offline = false
[DEBUG]   (f) packaging = exe
[DEBUG]   (f) pomFile = c:\temp\build-test\pom.xml
[DEBUG]   (f) project = MavenProject: org.Apache.maven:standalone-pom:1 @ 
[DEBUG]   (f) repositoryId = remote-repository
[DEBUG]   (f) repositoryLayout = default
[DEBUG]   (f) retryFailedDeploymentCount = 1
[DEBUG]   (f) uniqueVersion = true
[DEBUG]   (f) updateReleaseInfo = false
[DEBUG]   (f) url = https://nexus.url.blah.com/...
[DEBUG]   (f) version = 13.1
[DEBUG] -- end configuration --

Dans ce cas, il utilise la valeur par défaut "remote-repository", ce qui signifie que quelque chose s'est mal passé.

Apparemment, j'ai spécifié -DrepositoryID (ID de la note en majuscule) au lieu de -DrepositoryId.

9
Jay Random

J'avais mis un mot de passe non crypté dans le fichier settings.xml.

J'ai testé l'appel avec curl

curl -u username:password http://url/artifactory/libs-snapshot-local/com/myproject/api/1.0-SNAPSHOT/api-1.0-20160128.114425-1.jar --request PUT --data target/api-1.0-SNAPSHOT.jar 

et j'ai eu l'erreur:

{
  "errors" : [ {
    "status" : 401,
    "message" : "Artifactory configured to accept only encrypted passwords but received a clear text password."
  } ]
}

J'ai récupéré mon mot de passe crypté en cliquant sur mon profil artificiel et le déverrouillant.

7
Alberto M

changez simplement dans settings.xml, comme le dit aliteralmind: 

  <server>
      <id>nexus-snapshots</id>
      <username>MY_SONATYPE_DOT_COM_USERNAME</username>
      <password>MY_SONATYPE_DOT_COM_PASSWORD</password>    
 </server>

vous devez probablement obtenir le nom d'utilisateur/mot de passe de sonatype dot com. 

6
Moe Singh

A également eu 401 de Nexus. Après avoir essayé toutes les suggestions ci-dessus et plus encore sans succès, j’ai finalement trouvé que c’était un paramètre de Jenkins qui était erroné.

Dans la configuration Jenkins du projet en échec, nous avons une section dans les actions «Après construction» intitulée «Déployer des artefacts dans un référentiel Maven». Cela a un champ 'Repository ID' qui a été défini sur la mauvaise valeur. Il doit être identique à l'ID de référentiel dans settings.xml pour que Jenkins puisse lire les champs utilisateur et mot de passe:

 Jenkins Project Configuration

 <servers>
    <server>
      <id>snapshot-repository</id>  <!-- must match this -->
      <username>deployment</username>
      <password>password</password>
    </server>
  </servers>
2
Forge_7

Certains utilisateurs peuvent avoir entré l'adresse électronique au lieu du nom d'utilisateur par erreur. Cela peut se produire inconsciemment lorsque le nom indiqué dans l'adresse de messagerie est identique au nom d'utilisateur.

2
rwitzel

C'est l'explication officielle de l'équipe sonatype nexus à propos de 401 - Unauthorized

Je vous recommande de lire Dépannage des échecs de déploiement d'artefacts pour plus d'informations.

Code 401 - non autorisé

Aucune information de connexion n'a été envoyée avec la demande ou connectez-vous les identifiants non valides ont été envoyés. En vérifiant l'alimentation du système "autorisation Et authentification" dans l'interface utilisateur Nexus, vous pouvez affiner ce processus vers le bas. Si les informations d'identification ont été envoyées, il y aura une entrée dans le flux.

Si aucune information d'identification n'a été envoyée, cela est probablement dû à une mauvaise correspondance entre l'identifiant dans la section distributionManagement de votre pom et votre La section serveur de settings.xml qui contient les informations d'identification de connexion.

2
Rumesh Bandara

dans mon cas, après le cryptage du mot de passe (j'ai oublié de mettre settings-security.xml dans ~/.m2)

1
isghost

Nous avons eu ce problème tout récemment et avons découvert que cela avait un rapport avec la version de Maven que nous utilisions. Nous utilisions la version 3.1.0 et ne pouvions pas télécharger vers Nexus, nous continuions à obtenir des fichiers 401, nous sommes revenus à la version 3.0.3 et le problème a disparu.

Le moyen le plus simple de confirmer consiste à utiliser les versions de Maven et à exécuter "mvn deploy" sur votre projet.

Plus de détails peuvent être trouvés ici: https://issues.Apache.org/jira/browse/WAGON-421

1
Grant Currey

Cela pourrait être causé par une mauvaise version, vous pouvez vérifier la version du parent et la version de lib , pour vous assurer qu'elles sont correctes et non dupliquées, j'ai le même problème

0
Hieu Vo

Il y a deux setting.xml dans Windows. 

  • %MAVEN_HOME%\conf\
  • %userprofile%\.m2\ 

Si %userprofile%\.m2\setting.xml prend effet, maven n'aura pas accès à %MAVEN_HOME%\conf\setting.xml

0
joseph

En outre, une fois que vous avez mis à jour vos identifiants de référentiel, assurez-vous d’exécuter en mode minimal, car release:prepare reprendra à la place. Alors tu peux faire: 

mvn release:prepare -Dresume=false ou 

mvn release:clean release:prepare

0
Todor Kolev

J'ai eu la même erreur. J'ai essayé et revérifié tout. J'étais tellement concentré dans la trace de pile que je n'ai pas lu les dernières lignes de la construction avant le résumé de Reactor et la trace de pile: 

[DEBUG] Using connector AetherRepositoryConnector with priority 3.4028235E38 for http://www:8081/nexus/content/repositories/snapshots/
[INFO] Downloading: http://www:8081/nexus/content/repositories/snapshots/com/wdsuite/com.wdsuite.server.product/1.0.0-SNAPSHOT/maven-metadata.xml
[DEBUG] Could not find metadata com.group:artifact.product:version-SNAPSHOT/maven-metadata.xml in nexus (http://www:8081/nexus/content/repositories/snapshots/)
[DEBUG] Writing tracking file /home/me/.m2/repository/com/group/project/version-SNAPSHOT/resolver-status.properties
[INFO] Uploading: http://www:8081/nexus/content/repositories/snapshots/com/...-1.0.0-20141118.124526-1.Zip
[INFO] Uploading: http://www:8081/nexus/content/repositories/snapshots/com/...-1.0.0-20141118.124526-1.pom
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:

C'était la clé: "Impossible de trouver les métadonnées" . Bien qu’il ait été dit qu’il s’agissait d’une erreur d’authentification, il a en fait été corrigé lors de la reconstruction des métadonnées dans le référentiel Nexus.

J'espère que ça aide.

0
Betty Sanchez

Dans la version 3.13.0-01 de Nexus, la id de la section distributionManagement/repository du POM DOIT correspondre aux servers/server/id et mirrors/mirror/id de votre maven settings.xml. Je viens de remplacer Nexus v3.10.4 (par la 3.13.0-01) et il n’était pas nécessaire de faire correspondre la version 3.10.4. 

0
bigbadmouse

Avait un problème similaire. J'ai dû épingler le plugin maven deploy à une version spécifique dans pom.xml:

<plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-deploy-plugin</artifactId>
     <version>2.8.2</version>
</plugin>

Cette version est ce qui a cassé mes builds:

[INFO] --- maven-deploy-plugin:3.0.0-M1:deploy (default-cli) @ dbl ---
0
loafdog

Je traitais avec cette version courante d'Artifactory 5.8.4. La fonction "Configurez-moi" générerait settings.xml comme suit:

<servers>
    <server>
      <username>${security.getCurrentUsername()}</username>
      <password>${security.getEscapedEncryptedPassword()!"AP56eMPz8L12T5u4J6rWdqWqyhQ"}</password>
      <id>central</id>
    </server>
    <server>
      <username>${security.getCurrentUsername()}</username>
      <password>${security.getEscapedEncryptedPassword()!"AP56eMPz8L12T5u4J6rWdqWqyhQ"}</password>
      <id>snapshots</id>
    </server>
</servers>

Après avoir utilisé le commutateur mvn deploy -e -X, j'ai remarqué que les informations d'identification n'étaient pas précises. J'ai enlevé le $ {security.getCurrentUsername ()} et remplacé par mon nom d'utilisateur et enlevé $ {security.getEscapedEncryptedPassword ()! ""} et viens de mettre mon mot de passe crypté qui a fonctionné pour moi:

<servers>
    <server>
      <username>username</username>
      <password>AP56eMPz8L12T5u4J6rWdqWqyhQ</password>
      <id>central</id>
    </server>
    <server>
      <username>username</username>
      <password>AP56eMPz8L12T5u4J6rWdqWqyhQ</password>
      <id>snapshots</id>
    </server>
</servers>

J'espère que cela t'aides!

0
pdibenedetto