小编Kon*_*nrd的帖子

带有Svn的Maven Release Plugin:Externals和一个多模块项目

给出以下示例多模块项目:

  • 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的依赖关系.

通过发布释放:只要aggr文件夹在svn存储库(repository/trunk/aggr/parent.pom,...)中具有相同的结构,prepare/perform 就可以正常工作.

现在,当我想使用相同的项目,但使用svn:externals时,release-plugin无法说明comp1:

Can't release project due to non released dependencies : parent:pom:2.0-SNAPSHOT

然后存储库结构就像

  • 库/汇聚/主干/ pom.xml的
  • 库/父母/主干/ pom.xml的
  • 库/应用/主干/ pom.xml的
  • 库/ COMP1 /主干/ pom.xml的

aggr文件夹使用指向模块中继的外部,因此签出的工作副本如上所示.

为什么Maven以不同的方式处理基于外部的模块,有没有办法克服这个问题?

编辑:svn:externals项目的pom-Files.与其他项目的pom-Files的唯一区别是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>
Run Code Online (Sandbox Code Playgroud)

外部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>
Run Code Online (Sandbox Code Playgroud)

外部app-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> …
Run Code Online (Sandbox Code Playgroud)

maven-2 maven maven-release-plugin

6
推荐指数
1
解决办法
1928
查看次数

标签 统计

maven ×1

maven-2 ×1

maven-release-plugin ×1