Maven - 如何在打包时打包所有依赖项的源代码

时间:2017-06-05 23:30:22

标签: java maven maven-assembly-plugin maven-source-plugin

所以我理解如何使用jar-with-dependencies描述符为maven-assembly-plugin将依赖项打包到我的可执行JAR中。

但是,我还想创建一个源包,它不仅包括我的项目的源,而且还包含嵌入在我的可执行JAR中的所有依赖项的源。

如何实现这一目标?

2 个答案:

答案 0 :(得分:2)

这是我最后使用的:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>src-dependencies</id>
            <phase>package</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <classifier>sources</classifier>
                <failOnMissingClassifierArtifact>false</failOnMissingClassifierArtifact>
                <outputDirectory>${project.build.directory}/sources</outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>

它将所有已知依赖项的源递归复制到target/source目录中。非常方便!

注意:使用unpack-dependencies目标来解压缩目标目录中的所有源。

参考:https://maven.apache.org/plugins/maven-dependency-plugin/index.html

答案 1 :(得分:-1)

我没有看到一个简单的方法。 您必须向依赖项的源添加依赖项(复制所有依赖项,但添加分类器'sources'),将它们解压缩到一个文件夹(maven-dependency-plugin:unpack)中,然后使用程序集插件重新压缩它们。 / p>

依赖插件有一个可以帮助的源目标,但我从未使用它。