subir example distributionmanagement deploy maven deployment pom.xml nexus

maven - example - nexus repository



Error al implementar un artefacto en Nexus (9)

Obtengo un error al implementar un artefacto en mi propio repositorio en un servidor Nexus: "No se pudieron implementar artefactos: no se pudo transferir el artefacto" "No se pudo transferir el archivo http: /// my_artifact. El código de retorno es: 400"

Tengo Nexus ejecutándose con un repositorio personalizado my_repo con la siguiente configuración local de maven:

settings.xml

<server> <id>my_repo</id> <username>user</username> <password>pass</password> </server> ... <mirror> <id>my_repo</id> <name>Repo Mirror</name> <url><my_url_to_my_repo></url> <mirrorOf>*</mirrorOf> </mirror>

  • el usuario tiene permisos para crear / leer / escribir en my_repo -

pom.xml

<distributionManagement> <repository> <id>my_repo</id> <name>my_repo</name> <url><my_url_to_my_repo></url> <layout>default</layout> </repository> <snapshotRepository> <id>snapshots</id> <name>Snapshots</name> <url><my_url_to_my_snapshot_repo></url> </snapshotRepository> </distributionManagement>

y luego ejecuto

mvn deploy

y consigue el error. ¿Alguna idea?


Asegúrese de que no exista ya (artefacto y versión) en el nexo (como versión). En ese caso, devuelva la Solicitud incorrecta.


En el raro caso de que necesite volver a implementar el artefacto MISMO ESTABLE en Nexus, fallará de manera predeterminada. Si luego elimina el artefacto de Nexus (a través de la interfaz web) con el fin de desplegarlo nuevamente, la implementación aún fallará, ya que solo eliminar el p.ej. jar o pom no borra otros archivos que aún existen en el directorio. Debe iniciar sesión en el cuadro y eliminar el directorio en su totalidad.


La causa del problema para mí fue que -fuente.jars se subía dos veces (con maven-source-plugin) como se menciona como una de las causas de la respuesta aceptada. Redirigiendo para responder a lo que me he referido: el complemento de lanzamiento de Maven falla: los artefactos de origen se implementan dos veces


Si alguna de las respuestas anteriores funcionó, puede crear un artefacto nuevo directamente desde el lado del administrador de (Captura de pantalla NEXUS adjunta a continuación).

  1. Login to nexus interfaz de usuario de Login to nexus http: // YOUR_URL: 8081 / nexus (nombre de usuario: admin contraseña predeterminada: admin123 )
  2. Click repositories en el lado izquierdo y luego haga clic en el repositorio. Por ejemplo, haga clic en la versión.
  3. Elija artifact Upload (última pestaña).
  4. Elija la GAV definition como parámetro de GAV Param - Luego ingrese su ID de grupo, artefacto y versión.
  5. Elija el archivo Jar.
  6. Haz clic en cargar artefacto. Eso es !

Ahora podrá agregar el corrsponding en su proyecto. (Captura de pantalla a continuación)


Solo para crear una respuesta separada. La respuesta se encuentra en realidad en un comentario de la respuesta aceptada.

Intenta cambiar la versión de tu artefacto para terminar con -SNAPSHOT .


Tuve el mismo problema hoy con la adición "El código de retorno es: 400, Rechazo de razón: Solicitud incorrecta". que resultó ser el problema "el artefacto ya está implementado con esa versión si es una versión" de la respuesta anterior, ingrese la descripción del enlace aquí

Una solución aún no mencionada es la configuración de Nexus para permitir el redespliegue en un repositorio de versiones. Tal vez no sea una buena práctica, porque esto se establece por una razón, sin embargo, puedes ir a "Configuración de acceso" en "Depósito de configuración" de tus repositorios Nexus y configurar la "Política de implementación" a "Permitir volver a desplegar".


Tuve este problema exacto hoy y el problema fue que la versión que estaba intentando lanzar: realizar ya estaba en el repositorio de Nexus.

En mi caso, esto probablemente se debió a una desconexión de red durante una invocación anterior de la versión: realizar. Aunque perdí mi conexión, parece que el lanzamiento tuvo éxito.


Un par de cosas que puedo pensar:

  • credenciales de usuario son incorrectas
  • URL al servidor está mal
  • el usuario no tiene acceso al repositorio de implementación
  • el usuario no tiene acceso al destino del repositorio específico
  • artefacto ya está implementado con esa versión si es una versión (no versión -SNAPSHOT)
  • el repositorio no es adecuado para el despliegue del artefacto respectivo (por ejemplo, release repo para la versión de instantánea, repos de proxy o grupo en lugar de un repositorio alojado)

Compruébelo y si todavía tiene problemas, proporcione más detalles aquí.


  • en la aplicación parent pom ==> Version coloca la etiqueta de la siguiente manera: xxx-SNAPSHOT

ejemplo: 0.0.1-SNAPSHOT

  • "-SNAPSHOT": es muy importante