У меня проблемы с использованием test-jar
зависимостей в многомодульном проекте.Например, когда я заявляю, что модуль cleartk-syntax
зависит от test-jar
модуля cleartk-token
, вот так (полный код здесь ):
<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>
Я получаюследующая ошибка, если я запускаю mvn compile
, используя 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
Если я использую maven 3, я получаю ошибку:
[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
В последнем случае я особенно запуталсяпотому что я бы подумал, что нужно искать артефакт типа test-jar
, а не типа jar
.
С maven 2 или maven 3 я могу заставить его скомпилировать, запустив mvn compile package -DskipTests
.С maven 3 я также могу заставить его скомпилировать, запустив mvn compile test-compile
.
Но почему либо maven 2, либо maven 3 ищут зависимость test-jar
во время фазы compile
?Разве он не должен ждать до фазы test-compile
для поиска таких зависимостей?
Обновление: Ответ был таков, что maven-exec-plugin, используемый во время моей фазы компиляции, требует разрешения зависимости артефактов в области видимости: test .Я создал запрос функции для удаления области: тестовая зависимость .