Как вывести простой список зависимостей Maven


Я пытаюсь получить простой, поддающийся машинному разбору список зависимостей от моего 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   3   2016-01-11 17:23:39

2 ответа:

Можно перенаправить выходные данные 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 датировано январем 2009 года ). Последнее-это 2.10 в это время.

Основываясь на ответе Тунаки и комбинируя с этот ответ, чтобы использовать 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

>
Не идеально-но значительное улучшение для моих целей.