maven将构建的bundle放在modules文件夹而不是本地存储库中

时间:2016-07-18 12:22:28

标签: maven

我有一个包含大量模块的多模块maven项目,我想将构建的bundle存储在每个模块的相应文件夹中,即buildbundle。现在,众所周知,maven将所有内容存储在.m2/repository下。但是,我们希望为每个项目更改它。我寻找一个解决方案,但大多数建议整个存储库的位置更改,这不是我们想要的。

有没有办法告诉maven将构建的软件包放到相应模块的build文件夹中?

为了说明我们的需求,可以检查:

立即

 + m2
   + repository
     + localGroup
       + moduleName   <-- compiled bundle goes here

我们想要什么:

+ workspace
  + localGroup
    + moduleName
      + src
      + **build**  <-- compiled bundle goes here
      + pom.xml
      + .
      + .
      + ...

注意:我必须说它不一定要将它们编译到文件夹中,可以通过从.m2/repository复制到相应模块的build文件夹来完成。我听说在这方面有一个plugin用于复制模块内的东西。

1 个答案:

答案 0 :(得分:0)

好的,所以这有点解决了我的问题:

<plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>2.8</version>
          <executions>
            <execution>
              <id>copy-installed</id>
              <phase>install</phase>
              <goals>
                <goal>copy</goal>
              </goals>
              <configuration>
                <artifactItems>
                  <artifactItem>
                    <groupId>${project.groupId}</groupId>
                    <artifactId>${project.artifactId}</artifactId>
                    <version>${project.version}</version>
                    <type>${project.packaging}</type>
                  </artifactItem>
                </artifactItems>
                <outputDirectory>build</outputDirectory>
              </configuration>
            </execution>
          </executions>
</plugin>

请注意,指定构建文件夹就足够了,因为maven使用项目本身的相对路径,因此无需提供文件夹的绝对路径或其他内容。