plugin java maven-2 artifactory

java - plugin - Maven no puede obtener compilaciones SNAPSHOT desde el repositorio



maven release plugin git (2)

Nuestro repositorio interno (Artifactory) ahora contiene tanto las compilaciones estables como las versiones SNAPSHOT de nuestras bibliotecas internas.

Para compilaciones estables nunca ha habido un problema de descargar nada del repositorio.

Sin embargo, cuando agrego un -SNAPSHOT, Maven dice que no puede encontrar la dependencia, aunque definitivamente está en el repositorio.

Si compilo e implemento la dependencia localmente (es decir, en mi repositorio local), todo funciona normalmente.

Básicamente, esto funciona:

<dependency> <groupId>com.example</groupId> <artifactId>ourlibrary</artifactId> <version>1.0.0</version> </dependency>

y esto no

<dependency> <groupId>com.example</groupId> <artifactId>ourlibrary</artifactId> <version>1.0.1-SNAPSHOT</version> </dependency>

A pesar de que ambas versiones se construyeron de la misma manera y se implementaron (hasta donde puedo decir) correctamente en el repositorio.

El error:

Missing: ---------- 1) com.example:ourlibrary:jar:1.0.1-SNAPSHOT, Try downloading the file manually from the project website. Then, install it using the command: mvn install:install-file -DgroupId=com.example -DartifactId=ourlibrary -Dversion=1.0.1-SNAPSHOT, -Dpackaging=jar -Dfile=/path/to/file Alternatively, if you host your own repository you can deploy the file there: mvn deploy:deploy-file -DgroupId=com.example -DartifactId=ourlibrary -Dversion=1.0.1-SNAPSHOT, -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id] Path to dependency: 1) com.example:product:war:2.0.0-SNAPSHOT 2) com.example:ourlibrary:jar:1.0.1-SNAPSHOT,

Si bien esto suena similar a this cuestión, la resolución no llegó a no se aplica a mi caso.

Cualquier información sobre este tema sería muy apreciada.

Editar

Ejecutar con -X (como sugirió John V.) reveló lo siguiente:

[DEBUG] Skipping disabled repository central [DEBUG] ourlibrary: using locally installed snapshot [DEBUG] Skipping disabled repository central [DEBUG] Using mirror: http://repo.example.com/repo (id: repo.example.com) [DEBUG] Artifact not found - using stub model: Unable to download the artifact from any repository com.example:ourlibrary:pom:1.0.1-SNAPSHOT from the specified remote repositories: repo.example.com (http://repo.example.com/repo) [DEBUG] Using defaults for missing POM com.example:ourlibrary:pom:1.0.1-SNAPSHOT:compile [DEBUG] com.example:ourlibrary:jar:1.0.1-SNAPSHOT:compile (selected for compile)


Dos pensamientos vienen a la mente:

  1. La estructura de ruta en su repositorio interno para su artefacto es incorrecta. Sugiero ejecutar el comando maven con el parámetro -X. Mostrará el intento del experto de descargar los archivos. Obtener la línea que tiene su repositorio como la url y tratar de buscar por sí mismo.

    El camino debe verse como

    /com/example/ourlibrary/1.0.1/ourlibrary-1.0.1-SNAPSHOT.jar

  2. Que aún no ha de incluir su repositorio como un repositorio en su pom.xml

Normalmente, tienes una url de instantáneas separada de la url de versiones. Sólo caminos diferentes en el mismo repositorio, pero aparece como repositorios separados en el POM. El de las instantáneas debe tener habilitadas las instantáneas, y el de las versiones tiene las instantáneas desactivadas:

<repositories> <repository> <id>central</id> <url> http://<releases-url> </url> **<snapshots> <enabled>false</enabled> </snapshots>** </repository> <repository> <id>snapshots</id> <url> http://<snapshots-url> </url> <snapshots> **<enabled>true</enabled>** <!-- never, daily, interval:X (where X is in minutes) or always --> <!--<updatePolicy>daily</updatePolicy> --> </snapshots> <releases> <enabled>false</enabled> </releases> </repository> </repositories>