为什么maven会释放我的子模块

时间:2014-05-21 19:55:05

标签: java maven maven-3 maven-release-plugin

我要做的是为所有子项目推出几个父母poms。我有一个项目,包含一个父pom和两个子模块poms。如果这有所不同,那么所有三种包装都是pom型。当我部署时,它未能部署子模块,说它们被跳过。

家长Pom

    <groupId>com.test.cpbx</groupId>
    <artifactId>parent</artifactId>
    <packaging>pom</packaging>
    <version>1.1-SNAPSHOT</version>
    <name>Parent Pom</name>


    <scm>
            <connection>scm:svn:https://url/trunk</connection>
    </scm>

    <modules>
            <module>appia</module>
            <module>rialto</module>
    </modules>

    <build>
            <plugins>
                    <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-release-plugin</artifactId>
                            <configuration>
                                    <goals>deploy</goals>
                                    <providerImplementations>
                                            <svn>javasvn</svn>
                                    </providerImplementations>
                            </configuration>
                            <dependencies>
                                    <dependency>
                                            <groupId>com.google.code.maven-scm-provider-svnjava</groupId>
                                            <artifactId>maven-scm-provider-svnjava</artifactId>
                                            <version>2.0.5</version>
                                            <scope>compile</scope>
                                    </dependency>
                            </dependencies>
                    </plugin>
            </plugins>
    </build>

    <dependencies>
            <dependency>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                    <version>4.11</version>
            </dependency>
    </dependencies>

这是我的一个孩子的poms,它们是唯一的变化是artifactId名称

儿童POM

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>

        <parent>
                <groupId>com.test.cpbx</groupId>
                <artifactId>parent</artifactId>
                <version>1.1-SNAPSHOT</version>
        </parent>

        <artifactId>rialto-parent</artifactId>
        <packaging>pom</packaging>
        <name>Rialto Parent POM</name>

</project>

输出

mvn  -B -DreleaseVersion=1.1 -DdevelopmentVersion=1.2.0-SNAPSHOT   release:prepare -DdryRun 

...
[INFO] Not removing release POMs
[INFO] Executing completion goals - since this is simulation mode it is running against the original project, not the rewritten ones
[INFO] Full run would be commit 3 files with message: '[maven-release-plugin] prepare for next development iteration'
[INFO] Release preparation simulation complete.
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Parent Pom ........................................ SUCCESS [2.573s]
[INFO] Appia Parent POM .................................. SKIPPED
[INFO] Rialto Parent POM ................................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.749s
[INFO] Finished at: Wed May 21 14:52:30 CDT 2014
[INFO] Final Memory: 15M/114M
[INFO] ------------------------------------------------------------------------

2 个答案:

答案 0 :(得分:11)

maven的输出有些混乱。

输出并不意味着它正在跳过构建模块或部署模块。

这是关于版本的重构的消息。输出告诉我们父pom拥有版本,子版本依赖于父pom。这意味着它不需要重构子模块pom.xml,因此它将反应器摘要中的子项打印为SKIPPED

答案 1 :(得分:2)

另一种可能性是,它意味着在能够构建这些模块之前该过程不起作用:

如果激活并行执行,它可以显示如下内容: [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] Parent Pom ........................................ SUCCESS [2.573s] [INFO] Child1 POM ........................................ SKIPPED [INFO] Child2 POM ........................................ SKIPPED [INFO] Dependent Sibling POM ............................. FAILURE [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------

如果依赖兄弟需要其中一个Childx工件,它可以在构建之前请求依赖。这会导致整个构建失败。

认为最后一次失败是因为其他人在构建期间错过了,这是误导性的。概述中的ABORTED状态可以节省一些时间。