Pregunta

Tengo un ejemplo Nexus con Maven 2 repositorios alojados en un campo de desarrollo empresarial no conectado a Internet. Necesito usar el maven-jaxb-schemagen Plugin de Sun, sin embargo, que sólo estaba disponible en formato Maven 1 (junto con muchas otras dependencias Maven 1, por lo que este no es un caso aislado borde ).

I hizo un nuevo Maven 1 repositorio alojada en Nexus ( maven1 ), y luego hizo un repositorio virtual Maven1-a-Maven2 también ( maven1as2 ). Debido a que algunos de los artefactos que se necesitan son instantáneas, la política para maven1 (y por extensión maven1as2 ) es Snapshot .

Me importaba la totalidad de los artefactos Maven 1 a través del sistema de archivos para anulado ubicación de almacenamiento local de este repositorio.

Entonces añadió maven1as2 a repositorios públicos grupo. Algunos de la referencia que he encontrado dice que Nexus no se le permitirá navegar o buscar un repositorio Maven1. He tenido resultados mixtos. Si selecciono repositorios públicos o maven1as2 en el Nexus, puedo ir a Navegar almacenamiento y profundizar en com / sol / herramientas / JXC / maven2 / maven-jaxb-schemagen-plugin / 1.3-SNAPSHOT / y ver el archivo maven-jaxb-schemagen-plugin-1.3-SNAPSHOT.pom y su suma de comprobación. Sin embargo, no puedo ver el JAR artefacto que debe estar allí y está en el sistema de archivos.

Cuando intento usar Maven para construir, me sale el siguiente:

$ mvn clean compile
[INFO] Scanning for projects...
[INFO] Reactor build order:
[INFO]   MyProject
[INFO]   MyModule1
[INFO]   MyModule2
         ...
[INFO] ---------------------------------------------------------------------------
[INFO] Building MyProject
[INFO]    task-segment: [clean, compile]
[INFO] ---------------------------------------------------------------------------
[INFO] [clean:clean {execution: default-clean}]
[INFO] [cobertura:clean {execution: default}]
[INFO] No goals needed for project - skipping
[INFO] ---------------------------------------------------------------------------
[INFO] Building MyModule1
[INFO]    task-segment: [clean, compile]
[INFO] ---------------------------------------------------------------------------
Downloading: http://my.nexus.server:8081/nexus/content/groups/public/com/sun/tools/jxc/maven2/maven-jaxb-schemagen-plugin/1.3-SNAPSHOT/maven-jaxb-schemagen-plugin-1.3-SNAPSHOT.pom
6K downloaded (maven-jaxb-schemagen-plugin-1.3-SNAPSHOT.pom)
[INFO] ---------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ---------------------------------------------------------------------------
[INFO] A required plugin was not found: Plugin could not be found - check that the goal name is correct: Unable to download the artifact from any repository

Try downloading the file manually from the project website.

Then, install it using the command:
    mvn install:install-file -DgroupId=com.sun.tools.jxc.maven2 -DartifactId=maven-jaxb-schemagen-plugin -Dversion=1.3-SNAPSHOT -Dpackaging=maven-plugin -Dfile=path/to/file

Alternatively, if you host your own repository you can deploy the file there:
    mvn deploy:deploy-file -DgroupId=com.sun.tools.jxc.maven2 -DartifactId=maven-jaxb-schemagen-plugin -Dversion=1.3-SNAPSHOT -Dpackaging=maven-plugin -Dfile=path/to/file -Durl=[url] -DrepositoryId=[id]


  com.sun.tools.jxc.maven2:maven-jaxb-schemagen-plugin:1.3-SNAPSHOT

from the specified remote repositories:
  nexus (http://my.nexus.server:8081/nexus/content/groups/public)


  com.sun.tools.jxc.maven2:maven-jaxb-schemagen-plugin:1.3-SNAPSHOT

from the specified remote repositories:
  nexus (http://my.nexus.server:8081/nexus/content/groups/public)

[INFO] ---------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ---------------------------------------------------------------------------
[INFO] Total time: 2 seconds
[INFO] Finished at: Tue Jul 06 15:05:08 EDT 2010
[INFO] Final Memory: 7M/17M
[INFO] ---------------------------------------------------------------------------
¿Fue útil?

Solución

A veces sucede cuando se trabaja con m2eclipse. Elige una dependencia y el ámbito predeterminado es POM y no frasco. Que no muestre su archivo POM. Validar que todas las dependencias están frasco scoped.

Otros consejos

He aprendido que la mayor parte de la reconstrucción de los metadatos de tiempo de los repositorios de ayuda para resolver este tipo de problemas. Me resulta molesto con qué frecuencia es necesario.

  • Seleccione el repositorio
  • En la pestaña "Explorar almacenamiento" abrir el menú contextual del nodo raíz (que a veces se oculta detrás del menú de contexto por defecto de Firefox - presionando Esc ayuda en este caso y trae el menú contextual Nexus a la vista)
  • Seleccione la reconstrucción de metadatos

Caducidad de caché y reindex puede ayudar también para algunos casos.
La mayoría de las veces estos pasos no resuelven el problema en el primer intento, pero al fin se resolvió que cada vez, sin embargo.

Nexus corro como una guerra en Glassfish 2.1

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top