我有一个包含大量模块的多模块maven项目,我想将构建的bundle存储在每个模块的相应文件夹中,即build
或bundle
。现在,众所周知,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用于复制模块内的东西。
答案 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使用项目本身的相对路径,因此无需提供文件夹的绝对路径或其他内容。