Considere un padre testCycle
con los módulos DummyCore
y TestFramework
.¿Puedo evitar un ciclo de dependencia con un extremo siendo una dependencia de prueba?
TestFramework
depende de DummyCore
y DummyCore
tiene un dedepency prueba en TestFramework
.
Construyendo y probando cada módulo de forma independiente maven no tiene problemas. Pero mvn test
testCycle
los padres resulta en:
The projects in the reactor contain a cyclic reference: Edge between 'Vertex{label='com.mysimpatico:TestFramework:1.0-SNAPSHOT'}' and 'Vertex{label='org.apache:DummyCore:1.0-SNAPSHOT'}' introduces to cycle in the graph org.apache:DummyCore:1.0-SNAPSHOT --> com.mysimpatico:TestFramework:1.0-SNAPSHOT --> org.apache:DummyCore:1.0-SNAPSHOT -> [Help 1]
To see the full stack trace of the errors, re-run Maven with the -e switch.
Re-run Maven using the -X switch to enable full debug logging.
For more information about the errors and possible solutions, please read the following articles:
[Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectCycleException
para reproducir:
wget http://dp4j.sf.net/debug/testCycle.zip
unzip testCycle.zip
cd testCycle; mvn test
Mi expectativa era que experto edificaría DummyCore
src y luego venir a recopilar las pruebas compilará TestFramework
src, que no lo hace Depende de DummyCore
. En esta etapa, habría compilado DummyCore
src + tests y TestFramework
src. Finalmente compilará DummyCore
pruebas también. ¿Hay alguna manera de decirle a maven que haga esto? Si no, ¿cómo solucionarías esto?
Mover el tests
en DummyCore
en un módulo propietario del sistema que depende de DummyCore
y TestFramework
? Haría eso solo para satisfacer a maven.
En mi experiencia, las dependencias cíclicas siempre dicen que hay un problema con el diseño. No importa si el ciclo está en un frasco, un paquete o una clase. – Augusto
@Augusto amén a que –