给定以下示例多模块项目:
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的父级,而app依赖于comp1。
通过release:prepare/perform发布非常顺利,只要aggr文件夹在svn存储库中具有相同的结构(repository/trunk/aggr/parent.pom等)。
现在当我想使用具有svn:externals的相同项目时,发布插件不起作用,指出comp1:
“由于未发布的依赖项,无法发布项目:parent:pom:2.0-SNAPSHOT”
然后,存储库结构如下:
repository/aggr/trunk/pom.xml
repository/parent/trunk/pom.xml
repository/app/trunk/pom.xml
repository/comp1/trunk/pom.xml
aggr文件夹使用外部引用指向模块主干,因此检出的工作副本看起来像上面那样。
为什么Maven会根据外部引用处理模块,并且是否有办法克服这个问题?
编辑:svn:externals项目的pom文件。与其他项目的pom文件唯一的区别是scm标记。在其他非外部项目中,只有聚合器具有scm标记。
外部parent-pom.xml
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的父级,而app依赖于comp1。
通过release:prepare/perform发布非常顺利,只要aggr文件夹在svn存储库中具有相同的结构(repository/trunk/aggr/parent.pom等)。
现在当我想使用具有svn:externals的相同项目时,发布插件不起作用,指出comp1:
“由于未发布的依赖项,无法发布项目:parent:pom:2.0-SNAPSHOT”
然后,存储库结构如下:
repository/aggr/trunk/pom.xml
repository/parent/trunk/pom.xml
repository/app/trunk/pom.xml
repository/comp1/trunk/pom.xml
aggr文件夹使用外部引用指向模块主干,因此检出的工作副本看起来像上面那样。
为什么Maven会根据外部引用处理模块,并且是否有办法克服这个问题?
编辑:svn:externals项目的pom文件。与其他项目的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 父项目 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>
谢谢 Konrad