Tengo problemas para utilizar las dependencias test-jar
en un proyecto de varios módulos. Por ejemplo, cuando declaro que el módulo cleartk-syntax
depende de la cleartk-token
módulo de test-jar
como esto (el código completo es here):por qué es necesaria la dependencia "jar-prueba" para "compilación mvn"
<modelVersion>4.0.0</modelVersion>
<groupId>org.cleartk</groupId>
<artifactId>cleartk-syntax</artifactId>
<version>0.5.0-SNAPSHOT</version>
<name>cleartk-syntax</name>
...
<dependencies>
...
<dependency>
<groupId>org.cleartk</groupId>
<artifactId>cleartk-token</artifactId>
<version>0.7.0-SNAPSHOT</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
me sale el siguiente error si corro mvn compile
utilizando Maven 2:
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Failed to resolve artifact.
Missing:
----------
1) org.cleartk:cleartk-token:test-jar:tests:0.7.0-SNAPSHOT
Si uso experto 3 me sale el error:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.654s
[INFO] Finished at: Mon Jan 24 21:19:17 CET 2011
[INFO] Final Memory: 16M/81M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project cleartk-syntax: Could not resolve
dependencies for project org.cleartk:cleartk-syntax:jar:0.5.0-SNAPSHOT: Could
not find artifact org.cleartk:cleartk-token:jar:tests:0.7.0-SNAPSHOT
En este último caso, soy la par particularmente confundido porque habría pensado que debería estar buscando un artefacto del tipo test-jar
que no sea del tipo jar
.
Con maven 2 o maven 3, puedo hacer que compile ejecutando mvn compile package -DskipTests
. Con maven 3, también puedo hacer que compile ejecutando mvn compile test-compile
.
¿Pero por qué maven 2 o maven 3 buscan una dependencia test-jar
durante la fase compile
? ¿No debería esperar hasta la fase test-compile
para buscar tales dependencias?
Actualización: La respuesta fue que maven-exec-plugin, utilizado durante mi fase de compilación, requires dependency resolution of artifacts in scope:test. Creé a feature request to remove the scope:test dependency.
He confirmado que la primera fase de maven para trabajar es compilación de prueba. proceso-prueba-recursos falla. –
Me alegra oír que no estoy solo al encontrarme con este error. En tu caso, también estás usando el complemento 'exec: java', que parecía ser parte del problema para mí. Si no, ¿está vinculando otros complementos a las fases de ejecución? – Steve
Lo que he descubierto recientemente, pero aún no he desenrollado, es que puedo causar el problema con un conjunto muy reducido de 3 archivos pom. Si estos tres (mi proyecto) heredan de la nada, funciona. Si heredan de org.apache: apache se rompe. Entonces, uno de los complementos definidos allí probablemente lo está rompiendo. No hay ningún ejecutor: el complemento java existe, pero uno de esos complementos y el ejecutivo probablemente dependan de algo más que se haya roto antes. Voy a comentar aquí si puedo reducirlo. –