Maven Release Plugin mit Svn: Externals und einem Multi-Modul-Projekt

Angesichts des folgenden Beispielprojekts mit mehreren Modulen:

aggr / pom.xml (Version 1.0-SNAPSHOT)aggr / parent / pom.xml (Version 2.0-SNAPSHOT)aggr / app / pom.xml (Version 3.0-SNAPSHOT)aggr / comp1 / pom.xml (Version 4.0-SNAPSHOT)

Wobei parent das übergeordnete Element eines anderen pom ist und app eine Abhängigkeit von comp1 hat.

Freigabe über Freigabe: vorbereiten / durchführenfunktioniert einfach gut solange der aggr ordner die gleiche struktur im svn repository hat (repository / trunk / aggr / parent.pom, ...).

Wenn ich jetzt dasselbe Projekt verwenden möchte, aber mit svn: externals, funktioniert das Release-Plugin nicht mit der Angabe von comp1:

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

Die Repository-Struktur ist dann so ähnlich

repository / aggr / trunk / pom.xmlrepository / parent / trunk / pom.xmlrepository / app / trunk / pom.xmlRepository / comp1 / trunk / pom.xml

Der Ordner "aggr" verwendet externe Elemente, die auf die Modul-Trunks verweisen. Daher sieht die ausgecheckte Arbeitskopie wie oben aus.

Warum basieren Maven-Handhabungsmodule anders auf externen Elementen und gibt es eine Möglichkeit, dies zu überwinden?

Edit: Die pom-Files des svn: externals Projekts. Der einzige Unterschied zu den pom-Files des anderen Projekts sind die scm-Tags. In dem anderen nicht-externen Projekt hat nur der Aggregator das Tag scm.

Externe 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>

Externe aggr-pom.xml small.test Eltern 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>

Externe 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>
    <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>

Danke Konrad

Antworten auf die Frage(1)

Ihre Antwort auf die Frage