¿Por qué recibo un error "401 no autorizado" en Maven?

115

¿Por qué recibo un error "401 no autorizado" en Maven?

Aquí está el error que recibo al llamar mvn deploy(registros completos en la parte inferior):

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

Según esta página de soporte de sonatype :

"Si está recibiendo un 401 es porque Maven está enviando las credenciales de inicio de sesión incorrectas o ninguna credencial".

A continuación se muestran los pasos que he tomado, a continuación se muestran mis archivos completos settings.xmly pom.xml, a continuación, se encuentran los registros completos de mvn deployy mvn deploy -e.

Cualquier idea sería apreciada. Estoy golpeando pared tras pared con Maven.


Seguí lista de comprobación de Sonatype cuando se recibe un error 401:

Elemento 1 de la lista de verificación . Asegúrese de que su nombre de usuario / contraseña sea correcto iniciando sesión en la interfaz de usuario de Nexus. Si curl está instalado en su máquina, puede intentar implementar un artefacto con ...

  • Inicié y salí exitosamente del sitio web sonatype.org, usando el usuario / pass in settings.xml.
  • Yo intenté utilizar curlpara desplegar manualmente un artefacto, con el comando

[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

pero tengo este error:

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.

Lo ejecuté nuevamente con la -kopción, y esta vez solo obtuve esto:

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

Nunca antes había usado curl, así que no sé qué hacer con esta información.

Elemento 2 de la lista de verificación . Si no hay salida de error, asegúrese de que sus privilegios de usuario estén configurados correctamente en el servidor. Asegúrese de eliminar el repositorio que acaba de crear.

No sé qué significa "soltar". Creo que mis privilegios están instalados correctamente, ya que recibí este mensaje de sonatype:

y yo he puesto con éxito estos elementos en el servidor a través mvn deployde los últimos dos días.

La configuración del proyecto:

configuración del proyecto

Elemento 3 de la lista de verificación . Asegúrese de haber configurado un servidor settings.xmly que la identificación del servidor sea idéntica a la identificación del repositorio de distribución en pom.xml.

  • En settings.xml, configuración / servidores / servidor / id es igualossrh
  • En pom.xml, distributionManagement / snapshotRepository / id es igual aossrh

(los archivos completos están en la parte inferior)

Elemento 4 de la lista de verificación . Asegúrese de que su settings.xml esté en el lugar correcto (normalmente es _ ~ / .m2 / settings.xml). Puede verificar esto ejecutando mvn help: Effective-settings.

Según la referencia de configuración de Maven , settings.xml debe estar en una de dos ubicaciones:

  • La instalación de Maven: $M2_HOME/conf/settings.xml
  • Instalación de un usuario: ${user.home}/.m2/settings.xml

Aquí está mi configuración:

  • settings.xml: C:\applications\programming\apache-maven-3.2.2\conf\settings.xml
  • M2_HOME es C:\applications\programming\apache-maven-3.2.2

Salida para 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] ------------------------------------------------------------------------

Elemento 5 de la lista de verificación . Si el servidor usa https pero la URL en su POM es http, es posible que también obtenga el 401.

No entiendo a qué URL se refiere.

Elemento 6 de la lista de verificación . Utilice la última versión de Maven, ya que existe un problema conocido con respecto al 401: MNG-4469

Estoy usando la última versión:

[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"

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

Completo settings.xmly pom.xmlarchivos

(Registros completos para mvn deployy a mvn deploy -econtinuación)

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>

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

Registros completos para mvn deployymvn deploy -e

mvn deploy salida:

[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

(Sección de fallas :)

[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 salida:

[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

(Sección de fallas :)

[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
aliteralmind
fuente
FYI: Los marcadores de posición "MY_USERNAME" / "PASSWORD" están solo en esta pregunta. Utilizo mi usuario / contraseña real al iniciar sesión y en el archivo de configuración real.
aliteralmind
1
elemento 3: la necesidad de que la identificación del servidor coincida con la identificación del repositorio es una locura, pero desafortunadamente así es como funciona, su respuesta ayudó mucho, ¡gracias!
Somal Somalski

Respuestas:

51

Tuve errores similares al intentar implementar un artefacto de Gradle en un repositorio de Nexus Sonatype. Obtendrá un error 401 no autorizado si proporciona las credenciales incorrectas (contraseña, etc.). También obtienes un error (y en la parte superior de mi cabeza también hay un 401) si intentas publicar algo en un repositorio de versiones y esa versión ya existe en el repositorio. Por lo tanto, puede encontrar que al publicar desde la línea de comando funciona, pero luego, cuando lo hace desde un script, falla (porque no existía en el repositorio la primera vez). Publique con un número de versión diferente o elimine el artefacto antiguo en el servidor y vuelva a publicarlo.

El repositorio SNAPSHOTS (a diferencia del repositorio de versiones) le permite sobrescribir una versión numerada de manera similar, pero su número de versión debe tener "-SNAPSHOT" al final.

Juan
fuente
2
Increíble. Parece que 0.1.2-SNAPSHOT, que ya está creado, interfiere con mi nueva 0.1.2versión, como sugieres. Cambiarlo a 0.1.0("anterior"), o 0.1.2a, o 0.1.3("posterior") da como resultado el error con el que estaba tratando antes de este:
aliteralmind
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.4:install (default-install) on project xbnjava: Failed to install artifact com.github.aliteralmind:xbnjava:jar:0.1.3: R:\jeffy\programming\build\xbnjava-0.1.3\download\xbnjava-0.1.3-all.jar (The system cannot find the path specified) -> [Help 1]. No pensé que hice ningún cambio, pero obviamente eliminar eso -SNAPSHOTde la versión fue algo malo.
aliteralmind
46
Por qué en el MUNDO el mensaje de error diría algo tan nebuloso e inútil como "401 no autorizado" ...
aliteralmind
2
Verifique que el ID del repositorio para el que configuró sus credenciales (en su settings.xml o POM) coincida con el repositorio en el que desea implementar. Solo tropecé con esto.
Gregor
También tuve el problema de que ya había una versión de lanzamiento 1.3.0 cuando intentaba publicar el 1.2.0-SNAPSHOT ...
Marcello de Sales
12

Una de las razones de este error es cuando repositoryId no se especifica o se especifica incorrectamente. Como ya se mencionó, debería ser el mismo que en la sección de settings.xml. Un par de sugerencias ... Ejecute mvn con las opciones -e -X y verifique la salida de depuración. Le dirá qué repositoryId está usando:

[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 --

En este caso, utiliza el valor predeterminado "repositorio-remoto", lo que significa que algo salió mal.

Aparentemente, he especificado -DrepositoryID (ID de nota en mayúsculas) en lugar de -DrepositoryId.

Jay al azar
fuente
Esto me resolvió, pero también encontré que otros proyectos en mi espacio de trabajo no podían encontrar nuestro repositorio de lanzamientos con nombres únicos (buscarían artefactos en nuestro proxy central). Estamos usando 2.5.3 del complemento de lanzamiento. Entonces, en mi settings.xml, hice ambas ID de repositorio idénticas nuevamente (instantánea y versión) pero luego agregué otra declaración con una ID única para nuestro mismo repositorio de liberación (básicamente un alias). Esto permitió que los proyectos que requerían el nombre único se refirieran a eso, y los proyectos más antiguos que usaban nombres idénticos para referirse a ellos. Nuestro master-pom se refiere a lo idéntico.
dan
9

simplemente cambie en settings.xml estos como dice aliteralmind:

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

probablemente necesite obtener el nombre de usuario / contraseña de sonatype dot com.

Moe Singh
fuente
Genial ... Resuelto mi problema
Dhiral Pandya
¡Funcionó para mí también!
Igor Baiborodine
¡Yo también! Muchas gracias.
James Taylor
8

Había puesto una contraseña no cifrada en settings.xml.

Probé la llamada con 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 

y me sale el error:

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

Recuperé mi contraseña cifrada haciendo clic en mi perfil de artefacto y desbloqueándolo.

Alberto M
fuente
1
Sugerencia: muchas implementaciones de curl requieren opciones antes de la URL. En este caso, utilice code curl -u username:password --request PUT --data target/api-1.0-SNAPSHOT.jar http://url/artifactory/libs-snapshot-local/com/myproject/api/1.0-SNAPSHOT/api-1.0-20160128.114425-1.jaren su lugar
TouDick
4

También tenía 401 de Nexus. Después de haber probado todas las sugerencias anteriores y más sin éxito, finalmente descubrí que era una configuración de Jenkins la que estaba mal.

En la configuración de Jenkins para el proyecto fallido, tenemos una sección en las acciones 'Publicar compilación' titulada 'Implementar artefactos en el repositorio de Maven'. Esto tiene un campo 'ID de repositorio' que se configuró con un valor incorrecto. Tiene que ser el mismo que el ID del repositorio en settings.xml para que Jenkins lea los campos de usuario y contraseña:

Configuración del proyecto Jenkins

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

Como se indica en la respuesta de @ John, el hecho de que ya haya un 0.1.2-SNAPSHOT, interfirió con mi nueva versión que no es SNAPSHOT 0.1.2. Dado que el 401 Unauthorizederror es nebuloso e inútil, y normalmente está asociado con problemas de usuario / pase, no es de extrañar que no haya podido resolver esto por mi cuenta.

Cambiar la versión 0.1.3me devuelve a mi error original:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.4:install (default-install) on project xbnjava: Failed to install artifact com.github.aliteralmind:xbnjava:jar:0.1.3: R:\jeffy\programming\build\xbnjava-0.1.3\download\xbnjava-0.1.3-all.jar (The system cannot find the path specified) -> [Help 1].

Una persona de soporte de sonatype también me recomendó que elimine el <parent>bloque de mi POM (solo está ahí porque está en el de ez-vcard , que es con lo que comencé) y reemplace mi <distributionManagement>bloque con

<distributionManagement>
  <snapshotRepository>
    <id>ossrh</id>
    <url>https://oss.sonatype.org/content/repositories/snapshots</url>
  </snapshotRepository>
  <repository>
    <id>ossrh</id>
    <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
  </repository>
</distributionManagement>
and then make sure that lines up with what's in your settings.xml:
<settings>
  <servers>
    <server>
      <id>ossrh</id>
      <username>your-jira-id</username>
      <password>your-jira-pwd</password>
    </server>
  </servers>
</settings>

Después de hacer esto, ¡al ejecutar mvn deployrealmente cargué uno de mis frascos por primera vez!

Salida:

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building XBN-Java 0.1.3
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- build-helper-maven-plugin:1.8:attach-artifact (attach-artifacts) @ xbnjava ---
[INFO]
[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.3\xbnjava-0.1.3.pom
[INFO] Installing R:\jeffy\programming\build\xbnjava-0.1.3\download\xbnjava-0.1.3.jar to C:\Users\jeffy\.m2\repository\com\github\aliteralmind\xbnjava\0.1.3\xbnjava-0.1.3.jar
[INFO]
[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.3/xbnjava-0.1.3.pom
2/6 KB
4/6 KB
6/6 KB

Uploaded: https://oss.sonatype.org/service/local/staging/deploy/maven2/com/github/aliteralmind/xbnjava/0.1.3/xbnjava-0.1.3.pom (6 KB at 4.6 KB/sec)
Downloading: https://oss.sonatype.org/service/local/staging/deploy/maven2/com/github/aliteralmind/xbnjava/maven-metadata.xml
310/310 B

Downloaded: https://oss.sonatype.org/service/local/staging/deploy/maven2/com/github/aliteralmind/xbnjava/maven-metadata.xml (310 B at 1.6 KB/sec)
Uploading: https://oss.sonatype.org/service/local/staging/deploy/maven2/com/github/aliteralmind/xbnjava/maven-metadata.xml
310/310 B

Uploaded: https://oss.sonatype.org/service/local/staging/deploy/maven2/com/github/aliteralmind/xbnjava/maven-metadata.xml (310 B at 1.4 KB/sec)
Uploading: https://oss.sonatype.org/service/local/staging/deploy/maven2/com/github/aliteralmind/xbnjava/0.1.3/xbnjava-0.1.3.jar
2/630 KB
4/630 KB
6/630 KB
8/630 KB
10/630 KB
12/630 KB
14/630 KB
...
618/630 KB
620/630 KB
622/630 KB
624/630 KB
626/630 KB
628/630 KB
630/630 KB

(Porción de éxito :)

Uploaded: https://oss.sonatype.org/service/local/staging/deploy/maven2/com/github/aliteralmind/xbnjava/0.1.3/xbnjava-0.1.3.jar (630 KB at 474.7 KB/sec)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.632 s
[INFO] Finished at: 2014-07-18T15:09:25-04:00
[INFO] Final Memory: 6M/19M
[INFO] ------------------------------------------------------------------------

Aquí está el POM completo actualizado:

<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.3</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>

  <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>
    <repository>
      <id>ossrh</id>
      <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
    </repository>
  </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>
  <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}.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>

Ese es un gran problema de Maven fuera del camino. Solo quedan 627 más.

aliteralmind
fuente
2

Algunos usuarios pueden haber ingresado la dirección de correo electrónico en lugar del nombre de usuario por error. Esto puede suceder inconscientemente cuando el nombre en la dirección de correo electrónico es el mismo que el nombre de usuario.

rwitzel
fuente
Esto me resolvió el problema al usar sonatype nexus 2.12. Tuve que cambiar la dirección de correo electrónico a solo un nombre de usuario en mi settings.xml
spuder
2

Esta es la explicación oficial del equipo de sonatype nexus sobre 401 - No autorizado

Le recomiendo que lea Solución de problemas de errores de implementación de artefactos para obtener más información.

Código 401 - No autorizado

No se enviaron credenciales de inicio de sesión con la solicitud o se enviaron credenciales de inicio de sesión que no son válidas. Verificar el feed del sistema de "autorización y autenticación" en la IU de Nexus puede ayudar a reducir esto. Si se enviaron las credenciales, habrá una entrada en el feed.

Si no se enviaron credenciales, es probable que se deba a una falta de coincidencia entre la identificación en la sección de administración de distribución de su pom y la sección del servidor de settings.xml que contiene las credenciales de inicio de sesión.

Bandara de Rumesh
fuente
2

en mi caso, después de cifrar la contraseña, olvidé ponerla settings-security.xmlen ~ / .m2。

fantasma
fuente
1

Hemos tenido este problema recientemente y descubrimos que tenía que ver con la versión de Maven que estábamos usando. Estábamos usando 3.1.0 y no pudimos subir a nexus, seguimos obteniendo 401, volvimos a 3.0.3 y el problema desapareció.

La forma más sencilla de confirmar es trabajar con las versiones de maven y ejecutar "mvn deploy" en su proyecto.

Puede encontrar más detalles aquí: https://issues.apache.org/jira/browse/WAGON-421

Grant Currey
fuente
1

Estaba lidiando con esta versión de Artifactory 5.8.4 en ejecución. La función "Configurarme" generaría settings.xml de la siguiente manera:

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

Después de usar el conmutador mvn deploy -e -X, noté que las credenciales no eran precisas. Eliminé $ {security.getCurrentUsername ()} y lo reemplacé con mi nombre de usuario y eliminé $ {security.getEscapedEncryptedPassword ()! ""} Y simplemente puse mi contraseña cifrada que funcionó para mí:

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

¡Espero que esto ayude!

pdibenedetto
fuente
Parece que tiene los valores mal configurados en otro lugar, ya que se supone que debe usar valores del objeto de seguridad o recurrir a ellos como predeterminados. ¡Pero me alegro de que haya funcionado!
Rup
1

En la versión 3.13.0-01 de Nexus, el iden la distributionManagement/repositorysección de POM DEBE coincidir con servers/server/idy mirrors/mirror/iden su maven settings.xml. Acabo de reemplazar nexus v3.10.4 (con 3.13.0-01) y no era necesario para coincidir con 3.10.4.

bigbadmouse
fuente
1

Tuvo un problema similar. Tuve que anclar el complemento de implementación de maven a una versión específica en pom.xml:

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

Esta versión es lo que rompió mis compilaciones:

[INFO] --- maven-deploy-plugin:3.0.0-M1:deploy (default-cli) @ dbl ---
loafdog
fuente
Ayudó, luchó durante unos días explorando artefactos si se revocó el permiso, luego descubrí esto.
Karthik Prasad
0

Yo tenía el mismo error. Intenté y volví a comprobar todo. Estaba tan concentrado en el seguimiento de la pila que no leí las últimas líneas de la compilación antes del resumen de Reactor y el seguimiento de la pila:

[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:

Esta fue la clave: "No se pudieron encontrar los metadatos" . Aunque dijo que era un error de autenticación, en realidad se solucionó haciendo una "reconstrucción de metadatos" en el repositorio nexus.

Espero eso ayude.

Betty Sánchez
fuente
Recibí el mismo mensaje de depuración "No se pudieron encontrar los metadatos", pero el error real fue otro: utilicé un nombre de usuario incorrecto.
rwitzel
0

Además, después de haber actualizado los identificadores de su repositorio, asegúrese de ejecutar limpio, ya release:prepareque continuará donde lo dejó. Entonces puedes hacer:

mvn release:prepare -Dresume=false o

mvn release:clean release:prepare

Todor Kolev
fuente
0

Hay dos setting.xml en Windows.

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

Si %userprofile%\.m2\setting.xmlentra en vigor, maven no accederá %MAVEN_HOME%\conf\setting.xml.

Joseph
fuente
0

Podría ser causada por la versión incorrecta, se puede corroborar la versión de los padres y la versión de lib , para asegurarse de que son correctos y no duplicada, he experimentado mismo problema

Hieu Vo
fuente
0

Recibí un 401error cuando usé el mvn gpg:sign-and-deploy-filecomando y la razón fue que <MVN_HOME>/conf/settings.xmlno incluye la <server>etiqueta que puede obtener a través de https://oss.sonatype.org/#profile;User%20Tokendonde <id>es lo mismo que-DrepositoryId

Para <MVN_HOME>corrermvn --version

yoAlex5
fuente
0

En mi caso, eliminé las credenciales de inicio de sesión del servidor para central de mi configuración.

    <server> 
        <id>central</id>
        <username>admin</username> 
        <password>******</password> 
    </server>

   <mirror>
        <id>central</id>
        <mirrorOf>central</mirrorOf>
        <name>maven-central</name>
        <url>http://www.localhost:8081/repository/maven-central/</url>
   </mirror> 

No sé por qué hice eso, pero es completamente incorrecto ya que se puede acceder al repositorio central de maven de forma anónima. Vea mi salida de depuración que condujo a mi identificación y resolución de errores.

[DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for http://www.localhost:8081/repository/maven-central/ with username=admin, password=***
Tunde Pizzle
fuente
-1

Recibí el mismo error al intentar implementar en un repositorio de Artifactory, lo siguiente me resolvió el problema:

Vaya a la configuración del repositorio en el artefacto y habilite el punto " Forzar autenticación de Maven " y el error 401 "No autorizado" debería desaparecer. (Por supuesto, debe proporcionar sus credenciales en el archivo settings.xml en el mejor de los casos en texto sin formato para evitar problemas )

Supongo que, de forma predeterminada, incluso si proporciona las credenciales correctas en el archivo settings.xml, no se usan y obtiene la excepción No autorizado.

jnagel_t-h
fuente