2012-09-19 54 views
0

我得等,其中对父母的定义POM模块,如多模块项目:的Maven插件发布行家2

<modules> 
    <module>child1</module> 
    <module>child2</module> 
</modules> 

当我在父项目mvn release:prepare类型,建立每一个孩子,和本身的结束。有没有办法告诉发布插件安装每个孩子?所以,当我输入mvn release:prepare它对孩子:建立安装,并在最终版本?

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

<groupId>com.voncuver</groupId> 
<artifactId>cu</artifactId> 
<packaging>pom</packaging> 
<version>1.6.1-SNAPSHOT</version> 

<properties> 
    <spring-version>2.5.6</spring-version> 
    <maven-plugin-version>4.1.0.1-fuse</maven-plugin-version> 
</properties> 

<scm> 
    <connection>scm:svn:file:///C:/Users/voncuver/Documents/myRepository/cu</connection> 
    <developerConnection>scm:svn:file:///C:/Users/voncuver/Documents/myRepository/cu</developerConnection> 
</scm> 

<modules> 
    <module>cu-pars-engine</module> 
    <module>cu-agent</module> 
</modules> 


<build> 
    <resources> 
     <resource> 
      <directory>src/main/resources</directory> 
     </resource> 
    </resources> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <executions> 
       <execution> 
        <configuration> 
         <classifier>${target.env}</classifier> 
        </configuration> 
       </execution> 
      </executions> 
      <configuration> 
       <archive> 
        <manifest> 
         <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
        </manifest> 
        <manifestEntries> 
         <Build>${JOB_NAME} #${BUILD_NUMBER} at ${BUILD_ID}</Build> 
         <Environment>${environment.type}</Environment> 
         <Revision>${SVN_REVISION}</Revision> 
        </manifestEntries> 
       </archive> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-eclipse-plugin</artifactId> 
      <version>2.8</version> 
     </plugin> 
    </plugins> 
</build> 

<repositories> 
    <repository> 
     <id>releases</id> 
     <url> 
      http://maven.vonc.com/content/repositories/releases/ 
     </url> 
     <releases> 
      <enabled>true</enabled> 
     </releases> 
     <snapshots> 
      <enabled>false</enabled> 
     </snapshots> 
    </repository> 
    <repository> 
     <id>snapshots</id> 
     <url> 
      http://maven.von.com/content/repositories/snapshots/ 
     </url> 
     <releases> 
      <enabled>false</enabled> 
     </releases> 
     <snapshots> 
      <enabled>true</enabled> 
     </snapshots> 
    </repository> 
</repositories> 

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <artifactId>cu-pars-engine</artifactId> 
      <groupId>com.voncuver</groupId> 
      <version>${pom.version}</version> 
     </dependency> 
     <dependency> 
      <artifactId>cu-agent</artifactId> 
      <groupId>com.voncuver</groupId> 
      <version>${pom.version}</version> 
     </dependency> 
</dependencyManagement> 

<distributionManagement> 
    <repository> 
     <id>releases</id> 
     <url>http://maven.von.com/content/repositories/releases</url> 
     <layout>default</layout> 
    </repository> 
    <snapshotRepository> 
     <id>snapshots</id> 
     <url>http://maven.von.com/content/repositories/snapshots</url> 
     <layout>default</layout> 
     <uniqueVersion>true</uniqueVersion> 
    </snapshotRepository> 
</distributionManagement> 

儿童:

<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> 
    <artifactId>cu</artifactId> 
    <groupId>com.voncuver</groupId> 
    <version>1.6.1-SNAPSHOT</version> 
</parent> 

<artifactId>cu-pars-engine</artifactId> 
<packaging>jar</packaging> 


<dependencies> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.15</version> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>javacc-maven-plugin</artifactId> 
      <version>2.5</version> 
      <executions> 
       <execution> 
        <id>javacc</id> 
        <goals> 
         <goal>javacc</goal> 
        </goals> 
       </execution> 
       <execution> 
        <id>javacc-ptparser</id> 
        <goals> 
         <goal>jjtree-javacc</goal> 
        </goals> 
        <configuration> 
         <isStatic>false</isStatic> 
         <buildNodeFiles>true</buildNodeFiles> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

儿童第二:

<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"> 
<parent> 
    <artifactId>cu</artifactId> 
    <groupId>com.voncuver</groupId> 
    <version>1.6.1-SNAPSHOT</version> 
</parent> 
<modelVersion>4.0.0</modelVersion> 

<artifactId>cu-agent</artifactId> 
<packaging>jbi-service-unit</packaging> 

<dependencies> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.12</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 

+0

你在孩子2中定义了什么样的包装(确实存在一个合适的maven插件?)。啊发现它(http://camel.apache.org/jbi.html)。 – khmarbaise

+0

你的项目的文件夹结构如何? – khmarbaise

+0

你可以在mvn发布期间发布完整的错误输出:准备? – khmarbaise

回答

0

如果你有一个多模块构建你需要做的MVN发布:准备和MVN发布:您多模块构建的根,而不是每一个孩子执行步骤。

+0

是的,这是正确的,但在我这样做的情况下,mvn发布:准备结束失败,因为父项目希望发布版本的孩子。女巫不在本地回购或远程回购。当你执行mvn release:prepar时,mvn会构建每个项目(父,子),但不会安装它。所以当父母或孩子的项目依赖于另一个孩子时,它找不到它。执行mvn发行版时,我的解决方案是额外的目标:准备。 [链接](http://maven.apache.org/plugins/maven-release-plugin/examples/run-goals-before-commit.html) – voncuver

+0

这听起来你的项目配置不正确。你能展示你的根源,也许是你的孩子的一些摘录? – khmarbaise

+0

我已附加到主帖子。谢谢。 – voncuver