Рассмотрим 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 + tests и TestFramework
src. Наконец, он также скомпилирует DummyCore
тесты. Есть ли способ сказать Maven, чтобы сделать это?
Если нет, как бы вы обойти это?
Переместить tests
in DummyCore
в отдельный модуль, который зависит от DummyCore
и TestFramework
? Я бы делал это только для удовлетворения Maven.