Рассмотрим родительский объект testCycle
с модулями DummyCore
и TestFramework
.
TestFramework
зависит от DummyCore
, а DummyCore
имеет тестовую зависимость от TestFramework
.
Сборка и тестирование каждого модуля независимо maven не вызывает проблем. Но mvn test
родители testCycle
приводят к:
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
Для воспроизведения:
wget http://dp4j.sf.net/debug/testCycle.zip
unzip testCycle.zip
cd testCycle; mvn test
Я ожидал, что maven построит DummyCore
src и затем скомпилирует тесты будут компилировать TestFramework
src, который не зависит от DummyCore
. На этом этапе он должен был скомпилировать DummyCore
src + тесты и TestFramework
src. Наконец, он также скомпилирует тесты DummyCore
. Есть ли способ сказать maven сделать это?
Если нет, как бы вы обошлись с этим?
Переместить тесты
в DummyCore
в отдельный модуль, который зависит от DummyCore
и TestFramework
? Я бы сделал это, чтобы удовлетворить maven.