Плагин Maven Release с Svn: внешние и многомодульный проект
Приведен следующий пример многомодульного проекта:
aggr / pom.xml (версия 1.0-SNAPSHOT)aggr / parent / pom.xml (версия 2.0-SNAPSHOT)aggr / app / pom.xml (версия 3.0-SNAPSHOT)aggr / comp1 / pom.xml (версия 4.0-SNAPSHOT)где parent - родитель любого другого pom, а приложение имеет зависимость comp1.
Выпуск через релиз: подготовить / выполнитьпросто отлично работает если папка aggr имеет такую же структуру в хранилище svn (хранилище / trunk / aggr / parent.pom, ...).
Теперь, когда я хочу использовать тот же проект, но с svn: externals, плагин release не работает, заявляя, что comp1:
Can't release project due to non released dependencies : parent:pom:2.0-SNAPSHOT
Тогда структура хранилища
хранилище / Aggr / багажник / pom.xmlхранилище / родитель / багажник / pom.xmlхранилище / приложение / багажник / pom.xmlхранилище / comp1 / багажник / pom.xmlпапка aggr использует внешние ссылки, указывающие на модульные стволы, и, следовательно, извлеченная рабочая копия выглядит так, как указано выше.
Почему Maven по-разному обрабатывает модули, основанные на внешнем интерфейсе, и есть ли способ преодолеть это?
Редактировать: POM-файлы проекта SVN: Externals. Единственным отличием от pom-файлов другого проекта являются теги scm. В другом неэкстерьерном проекте только агрегатор имеет тэг scm.
Внешний parent-pom.xml
<groupId>small.test</groupId>
<artifactId>parent</artifactId>
<version>2.0-SNAPSHOT</version>
<scm>
<connection>scm:svn:http://localhost/svn/small-test-ext/parent/trunk/</connection>
<developerConnection>scm:svn:http://localhost/svn/small-test-ext/parent/trunk/</developerConnection>
<url>http://localhost/svn/small-test-ext/parent/trunk/</url>
</scm>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.4.1</version>
</plugin>
</plugins>
Внешний aggr-pom.xml small.test parent 2.0-SNAPSHOT
<groupId>small.test</groupId>
<artifactId>aggr</artifactId>
<version>1.0-SNAPSHOT</version>
<scm>
<connection>scm:svn:http://localhost/svn/small-test-ext/aggr/trunk/</connection>
<developerConnection>scm:svn:http://localhost/svn/small-test-ext/aggr/trunk/</developerConnection>
<url>http://localhost/svn/small-test-ext/aggr/trunk/</url>
</scm>
<modules>
<module>parent</module>
<module>comp1</module>
<module>comp2</module>
<module>app</module>
</modules>
Внешнее приложение-pom.xml
<parent>
<groupId>small.test</groupId>
<artifactId>parent</artifactId>
<version>2.0-SNAPSHOT</version>
</parent>
<groupId>small.test</groupId>
<version>3.0-SNAPSHOT</version>
<artifactId>app</artifactId>
<packaging>jar</packaging>
<scm>
<connection>scm:svn:http://localhost/svn/small-test-ext/app/trunk/</connection>
<developerConnection>scm:svn:http://localhost/svn/small-test-ext/app/trunk/</developerConnection>
<url>http://localhost/svn/small-test-ext/app/trunk/</url>
</scm>
<dependencies>
<dependency>
<groupId>small.test</groupId>
<artifactId>comp1</artifactId>
<version>4.0-SNAPSHOT</version>
</dependency>
Спасибо Конрад