why*_*ent 32 maven build-dependencies
我正在处理一个包含许多pom.xml文件的大项目,我需要指定我使用的所有库.这意味着我需要递归读取pom.xml文件并获取groupId,artifactId,scope和version.我检查了mvn依赖:树但我找不到以可读格式将其打印到文件的方法.我看到appendOutput但我没有看到如何在cmd中使用它的示例.我在Linux中看到了一些解决方案,但我只能访问Windows XP.
AC *_*art 69
这可以(至少现在)使用dependency:tree插件的命令行选项来完成.
尝试:
mvn dependency:tree -Doutput=/path/to/file
Run Code Online (Sandbox Code Playgroud)
参考:Maven依赖插件页面
您只询问了"可读"格式,但您也可以使用各种选项传递-DoutputType参数.另请注意我安装的版本,我收到以下警告:
[WARNING] The parameter output is deprecated. Use outputFile instead.
Run Code Online (Sandbox Code Playgroud)
因此,请考虑使用-DoutputFile =/path/to/file进行尝试
此外,我无法让-DoutputType参数给我除默认文本以外的任何内容,但没有机会玩它.因人而异.
Ana*_*esh 10
如果您在同一个 repo/project 下有多个模块,并且希望将所有模块的依赖关系放在一个文件中,以便能够区分一个构建和另一个构建的黑白,以查看某处是否发生了某些变化,您可以这样做
$project_dir> mvn dependency:tree -DoutputFile=<absolute_path_to_file> -DappendOutput=true
Run Code Online (Sandbox Code Playgroud)
例如
$project_dir> mvn dependency:tree -DoutputFile=`pwd`/mvn_dependency_tree.txt -DappendOutput=true
Run Code Online (Sandbox Code Playgroud)
在https://maven.apache.org/plugins/maven-dependency-plugin/tree-mojo.html查看其他可用选项
添加
<plugin>
<groupId>org.apache.servicemix.tooling</groupId>
<artifactId>depends-maven-plugin</artifactId>
</plugin>
Run Code Online (Sandbox Code Playgroud)
插件生成的classes/META-INF/maven/dependencies.properties文件具有易于解析的项目依赖关系。
产生的输出示例:
# Project dependencies generated by the Apache ServiceMix Maven Plugin
# Generated at: Mon Oct 10 17:43:00 CEST 2011
groupId = my.group.name
artifactId = my.artifact.name
version = 0.0.1-SNAPSHOT
my.group.name/my.artifact.name/version = 0.0.1-SNAPSHOT
# dependencies
junit/junit/version = 4.8
junit/junit/type = jar
junit/junit/scope = test
org.easymock/easymock/version = 2.4
org.easymock/easymock/type = jar
org.easymock/easymock/scope = test
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51223 次 |
| 最近记录: |