我们有一个私人存储库,所以我们需要从中央存储库下载工件并上传它们。
前段时间有人写了一个程序并不总是完美地工作:它会分别下载每个工件的所有依赖项,它会首先扫描依赖树,然后只下载它们,它不会下载源代码和javadocs,很慢,等等。
最近我遇到了这个名为dependency的有用maven插件及其目标get。
所以现在下载一些工件,比方说com.sparkjava.spark-core:2.5.4
,我会在我的终端上输入:
mvn dependency:get -Dartifact=com.sparkjava:spark-core:2.5.4
mvn dependency:get -Dartifact=com.sparkjava:spark-core:2.5.4:sources
mvn dependency:get -Dartifact=com.sparkjava:spark-core:2.5.4:javadoc
哪个会将工件及其所有依赖项下载到目录~/.m2/repository
,然后我可以将其转移到我们的私有存储库。
这种方法效果很好但有两个问题:
~/.m2/repository
,有时可能包含我对私有存储库不感兴趣的其他工件。我需要能够选择另一个目录。我可以对这些问题做些什么?关于第一个我可以使用别名(它仍然会运行相同的命令3次),但我不知道如何处理第二个问题,并且插件的文档中也没有提到它。
答案 0 :(得分:0)
要解决(2),您可以使用标记
更新settings.xml
<localRepository>C:\Users\my\custom\existing\directory</localRepository>
并确保在构建项目时,settings.xml
查看可以使用
mvn clean install -gs <pathToDirectory>
注意 - 请相应地修改路径。
要解决(1),将以下内容添加到settings.xml
也应该有效 -
<profiles>
<profile>
<id>downloadSources</id>
<properties>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>downloadSources</activeProfile>
</activeProfiles>
来源 - Maven – Always download sources and javadocs
其他可以提供帮助的maven命令是 -
resolve command with classifier:
mvn dependency:resolve -Dclassifier=javadoc #downloads all the documentation