4

我们设置了一个聚合 .pom 以包含几个单独的模块,类似于Maven 文档

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <version>1</version>
  <packaging>pom</packaging>

  <modules>
    <module>my-module</module>
    <module>my-module-2</module>
  </modules>
</project>

有没有办法在构建后从这两个模块的构建(.JAR 文件)中获取工件到一个公共的“dist”目录中?我不想调整“my-module/target”中各个模块的输出目录,因为它们也可以单独构建。

我是 Maven 新手,所以我确信有一种简单的方法可以做到这一点,我错过了。

4

4 回答 4

2

有没有办法在构建后从这两个模块的构建(.JAR 文件)中获取工件到一个公共的“dist”目录中?

Maven Assembly Plugin可以做到这一点,它非常强大和灵活。但功能和灵活性也意味着这不是最简单的插件。在您的情况下,这个想法是dir从 a 生成一个分布moduleSets,您必须为此创建一个自定义程序集描述符

我建议从第8.2 章开始。Maven 书的Assembly Basics和8.5.5章节要特别注意。模块集部分

于 2010-07-08T16:36:39.523 回答
1

在阅读了其他答案的链接后,这是我现在要尝试的:

        <plugin>
            <artifactId>maven-resources-plugin</artifactId>

            <executions>
                <execution>
                    <id>copy-jars</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <resources>
                            <resource>
                                <directory>../src/my-module/target</directory>
                                <includes>
                                    <include>**/my-module*.jar</include>
                                </includes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>

不完全漂亮,但是在研究 Assembly 插件以获得可能的长期解决方案时,这将是可行的。

于 2010-07-08T18:43:16.597 回答
0

我猜maven组装插件可以做到这一点

于 2010-07-08T16:04:53.687 回答
0

正如@Pangea 所说的汇编插件会做到这一点。只需assembly:assembly使用适当设置的outputDirectory参数运行目标即可。

更多信息在http://maven.apache.org/plugins/maven-assembly-plugin/assembly-mojo.html

于 2010-07-08T16:25:10.873 回答