在另一个模块中包含maven构建的程序集

时间:2011-06-21 15:45:23

标签: maven-2 maven maven-assembly-plugin maven-dependency-plugin

我有2个maven模块。一个模块使用maven-assembly-plugin构建一堆zip文件。第二个模块需要包含其包中第一个模块构建的一些zip文件。这样做的方法是什么。谢谢。

2 个答案:

答案 0 :(得分:1)

最简单的方法是将zip文件部署到存储库。对于本地存储库,请使用install:install-file,对于中央存储库,请使用deploy:deploy-file。

您可以在第二个模块中将zips声明为依赖项。

答案 1 :(得分:0)

所以其他人提到将它部署到您的存储库。如果您已经设置为将构建的工件部署到存储库,这很容易,如果没有,请查看http://maven.apache.org/plugins/maven-deploy-plugin/

接下来,您需要使用插件来从存储库中检出zip文件。你可以使用shade或maven-dependency-plugin。我们假设maven-dependency-plugin http://maven.apache.org/plugins/maven-dependency-plugin/usage.html

所以将它添加到插件部分的maven pom文件中:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>unpack</id>
            <phase>process-sources</phase>
            <goals>
                <goal>unpack</goal>
            </goals>
            <configuration>
                <artifactItems>
                    <artifactItem>
                        <groupId>my.artifact.group.id</groupId>
                        <artifactId>my-artifact</artifactId>
                        <version>My-version</version>
                        <type>zip</type>
                        <overWrite>false</overWrite>
                        <outputDirectory>${project.build.directory}/see</outputDirectory>
                    </artifactItem>
                </artifactItems>
            </configuration>
        </execution>
    </executions>
</plugin>

显然你需要改变工件的细节。这会将你的zip文件解压缩到target / see。如果您想要实际的zip文件(这看起来像您要求的但尚不清楚),只需将目标从“解包”更改为“复制依赖”。您可能还必须删除outputDirectory或更改配置的其他位。只需使用它来获取它所需的位置,并查看上面提到的maven-dependency-plugin上的页面以获取更多详细信息。

希望有所帮助。