鑑於下面的示例多模塊項目:Maven的推出插件與SVN:外部組件和多模塊項目
- AGGR/pom.xml中(版本1.0-SNAPSHOT)
- AGGR /父/ POM .XML(版本2.0-SNAPSHOT)
- AGGR /應用/ pom.xml中(版本3.0-SNAPSHOT)
- AGGR/COMP1/pom.xml中(版本4.0-SNAPSHOT)
其中母體是削減任何其他pom和app的nt都有comp1的依賴。
通過釋放釋放:準備/執行只是正常工作只要匯聚文件夾具有svn庫中相同的結構(資料庫/主幹/匯聚/ parent.pom,...)。
現在,當我想用同樣的項目,但使用svn:外部對象,釋放的插件不工作,指出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的
的匯聚文件夾使用的外部指向模塊幹線,因此,簽出的工作副本看起來就像上面。
爲什麼Maven處理基於外部模塊的模塊不同,有沒有辦法解決這個問題?
編輯:svn:externals項目的pom文件。與其他項目的pom-Files唯一的區別是scm標籤。在其他非外部項目中,只有聚合器具有scm標籤。
外部父的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>
感謝 康拉德
你有沒有使用相同版本的所有模塊等主要問題。此外可以顯示您的pom文件?除此之外,爲什麼你使用外部創建一個多模塊結構,而不是沒有外部創建一個真正的? – khmarbaise 2013-04-30 11:50:07
真實項目的模塊和父項正在幾個項目中使用。因此,我必須依賴外部,並且不能在整個項目中使用相同的版本。 – Konrd 2013-04-30 12:14:55
這不是一個真正的原因,因爲如果你有一個多模塊版本,你可以單獨使用這些模塊。因此,如果您不將文件夾結構更改爲單個SVN樹而不是使用外部元素,則不會運行它。 – khmarbaise 2013-06-04 07:42:33