如何输出简单的Maven依赖项列表

时间:2016-01-11 14:23:39

标签: maven maven-dependency-plugin

我正在尝试从我的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
> 

2 个答案:

答案 0 :(得分:6)

可以借助maven-dependency-plugin属性将outputFile的输出重定向到文件:

  

如果指定,此参数将导致将依赖项写入指定的路径,而不是写入控制台。

mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:list -f sample.pom -DoutputFile="..."

如果文件不存在,插件将创建该文件。如果它已经存在,则内容将被覆盖(但这可以由appendOutput属性控制)。

这应该为您提供一个简单且可解析的依赖项列表。

作为旁注,我注意到您使用的是maven-dependency-plugin2.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

>

不完美 - 但对我的目的而言是一项重大改进。