我正在尝试从我的POM中获取一个简单的,可机器分析的依赖项列表。如果我这样做:
mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:list -f sample.pom
我收到了无意义的[INFO]
输出:
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Unnamed - my-group:my-project:jar:1.0
[INFO] task-segment: [org.apache.maven.plugins:maven-dependency-plugin:2.1:list]
[INFO] ------------------------------------------------------------------------
[INFO] [dependency:list {execution: default-cli}]
[INFO]
[INFO] The following files have been resolved:
[INFO] com.squareup.picasso:picasso:jar:2.5.2:compile
[INFO] commons-io:commons-io:jar:1.3.2:compile
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Mon Jan 11 14:06:05 GMT 2016
[INFO] Final Memory: 17M/325M
[INFO] ------------------------------------------------------------
然后我必须手动刮取信息。如果我添加-q
开关
mvn -q org.apache.maven.plugins:maven-dependency-plugin:2.1:list -f sample.pom
如果已经是本地的,我会收到下载进度消息或者没有任何内容(除非当然有错误)。
是否真的没有办法执行依赖列表命令,所以它只输出一个简单的下载依赖列表?类似的东西:
> mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:list -f sample.pom
com.squareup.picasso:picasso:jar:2.5.2:compile
commons-io:commons-io:jar:1.3.2:compile
>
答案 0 :(得分:6)
可以借助maven-dependency-plugin
属性将outputFile
的输出重定向到文件:
如果指定,此参数将导致将依赖项写入指定的路径,而不是写入控制台。
mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:list -f sample.pom -DoutputFile="..."
如果文件不存在,插件将创建该文件。如果它已经存在,则内容将被覆盖(但这可以由appendOutput
属性控制)。
这应该为您提供一个简单且可解析的依赖项列表。
作为旁注,我注意到您使用的是maven-dependency-plugin
(2.1 is dated January 2009)的旧版本。目前最新的是2.10。
答案 1 :(得分:2)
根据Tunaki的回答并与this answer结合使用stdout作为文件,我得到了这个:
> mvn -q org.apache.maven.plugins:maven-dependency-plugin:2.10:list \
-f sample.pom -DoutputFile=>(cat)
The following files have been resolved:
commons-io:commons-io:jar:1.3.2:compile
com.squareup.picasso:picasso:jar:2.5.2:compile
>
不完美 - 但对我的目的而言是一项重大改进。