2011-01-21 111 views
1

我有一个maven项目,我想在其中解开mutli模块项目的所有子模块。有谁知道是否最好的方法来解决这个问题?这个项目中有100多个模块,我试图避免在其他地方复制所有这些信息。在maven中复制多模块项目的最佳方法

回答

1

首先,您需要创建一个包含所有项目作为依赖关系的pom.xml文件。

  1. 如果有 所有其他子模块为 依赖一个子模块,那么你是幸运的,只需添加一个依赖于子模块。
  2. 如果不是,您将不得不编写一个脚本或程序来收集所有子模块的groupIds,artifactIds,版本(和容器)。并创建一个pom.xml作为依赖关系。

然后,在这个项目中,你可以使用dependency:unpack-dependencies到项目解包:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <executions> 
    <execution> 
     <id>unpack-projects</id> 
     <phase>generate-sources</phase> 
     <goals> 
      <goal>unpack-dependencies</goal> 
     </goals> 
     <configuration> 
      <includeGroupIds>com.basegroupId*</includeGroupIds> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 

(设置includeGroupIds以匹配所有子模块组id模式)

现在,你只需要调用

mvn generate-sources 

(或您在执行中配置的任何其他阶段)

+0

谢谢,我正在使用的系统需要使用来自pom的模块列表作为数据源,我的目的是创建一个系统,以便我们不必在任何时候想要添加的地方在两个地方输入数据或者移除一个模块。最坏的情况我可以自己阅读pom,然后手动解析和复制这些文件,但是我希望Maven能够做到这一点。 – BillMan 2011-01-21 21:44:52