这是如何获取 pom.xml 中提到的所有指定 jar 和传递依赖的 jar 的后续帖子? 除了我希望将依赖和传递依赖的 jar 的源下载到自定义提到的位置。
我尝试了以下命令,但没有奏效。
mvn dependency:sources -DoutputDirectory=.../
它没有用。
mvn dependency:sources dependency:copy-dependencies -DoutputDirectory=.../
它没有用。
这是如何获取 pom.xml 中提到的所有指定 jar 和传递依赖的 jar 的后续帖子? 除了我希望将依赖和传递依赖的 jar 的源下载到自定义提到的位置。
我尝试了以下命令,但没有奏效。
mvn dependency:sources -DoutputDirectory=.../
它没有用。
mvn dependency:sources dependency:copy-dependencies -DoutputDirectory=.../
它没有用。
源 jar 通常可以通过 Maven 使用分类器获得,因此对于相同的 Maven 坐标(GAV、groupId、artifactId、version),您可以拥有多个与同一构建相关的工件(即默认应用程序/库 jar、源 jar 、测试源 jar、javadoc jar 等),正如另一个SO 答案中所解释的那样。源的标准分类器是sources
由Maven 源插件创建的。
可以将复制依赖项classifier
配置为通过选项获取某个分类器。
因此,在您的情况下,要将依赖项的来源获取到外部文件夹,您可以调用以下命令:
mvn dependency:copy-dependencies -DoutputDirectory=somewhere -Dclassifier=sources
请注意附加-Dclassifier=sources
选项。
实现相同目的的 pom 配置示例也在 Dependency Plugin 的官方文档中进行了说明,使用以下代码段:
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>src-dependencies</id>
<phase>package</phase>
<goals>
<!-- use copy-dependencies instead if you don't want to explode the sources -->
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<classifier>sources</classifier>
<failOnMissingClassifierArtifact>false</failOnMissingClassifierArtifact>
<outputDirectory>${project.build.directory}/sources</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
[...]
</project>
请注意,尽管 Maven 不知道来源,但它只知道人工制品。因此,如果无法通过其 GAV+C 获得源(分类)工件,Maven 会找到它,因此不会下载任何源。