Obter linhas Maven limpas e amigáveis à máquina / xml / json, analisáveis por scripts em STDOUT?
Por exemplo, execute este comando para um projeto maven:
mvn dependency:list
O que eu preciso do Maven ésó estas duas linhas (cortadas na saída abaixo):
com.example.code_samples.maven_dependencies:direct_library:jar:0.0.1-SNAPSHOT:compile
com.example.code_samples.maven_dependencies:indirect_library:jar:0.0.1-SNAPSHOT:compile
Existe uma maneira (CLI--option
) para ver apenas essas informações solicitadas em linhas limpas, xml, json, ...?
Em vez disso, a saída se parece mais com um log não estruturado. Ele não possui formato conhecido e combina todos os tipos de informações no STDOUT.
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] direct_library
[INFO] dependent_binary
[INFO] indirect_library
[INFO] maven_dependencies
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building direct_library 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://nexus:8081/nexus/content/repositories/snapshots/com/example/code_samples/maven_dependencies/indirect_library/0.0.1-SNAPSHOT/maven-metadata.xml
Downloaded: http://nexus:8081/nexus/content/repositories/snapshots/com/example/code_samples/maven_dependencies/indirect_library/0.0.1-SNAPSHOT/maven-metadata.xml (2 KB at 16.1
KB/sec)
[INFO]
[INFO] --- maven-dependency-plugin:2.8:list (default-cli) @ direct_library ---
[INFO]
[INFO] The following files have been resolved:
[INFO] junit:junit:jar:4.4:test
[INFO] com.example.code_samples.maven_dependencies:indirect_library:jar:0.0.1-SNAPSHOT:compile
[INFO]
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building dependent_binary 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://nexus:8081/nexus/content/repositories/snapshots/com/example/code_samples/maven_dependencies/direct_library/0.0.1-SNAPSHOT/maven-metadata.xml
Downloaded: http://nexus:8081/nexus/content/repositories/snapshots/com/example/code_samples/maven_dependencies/direct_library/0.0.1-SNAPSHOT/maven-metadata.xml (2 KB at 86.2 K
B/sec)
[INFO]
[INFO] --- maven-dependency-plugin:2.8:list (default-cli) @ dependent_binary ---
[INFO]
[INFO] The following files have been resolved:
[INFO] com.example.code_samples.maven_dependencies:direct_library:jar:0.0.1-SNAPSHOT:compile
[INFO] com.example.code_samples.maven_dependencies:indirect_library:jar:0.0.1-SNAPSHOT:compile
[INFO]
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building indirect_library 3.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.8:list (default-cli) @ indirect_library ---
[INFO]
[INFO] The following files have been resolved:
[INFO] none
[INFO]
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building maven_dependencies 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.8:list (default-cli) @ maven_dependencies ---
[INFO]
[INFO] The following files have been resolved:
[INFO] none
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] direct_library ..................................... SUCCESS [ 0.813 s]
[INFO] dependent_binary ................................... SUCCESS [ 0.026 s]
[INFO] indirect_library ................................... SUCCESS [ 0.013 s]
[INFO] maven_dependencies ................................. SUCCESS [ 0.002 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.065 s
[INFO] Finished at: 2015-03-24T12:10:01+08:00
[INFO] Final Memory: 18M/607M
[INFO] ------------------------------------------------------------------------
ATUALIZAR
Como alternativa, eu aceitaria a solução para usar a API do Maven para obter dados de tempo de execução comoCollection<String>
(em vez da saída de texto como acima, que não pode ser analisada com confiabilidade).
Dei uma olhadaAPI do Maven Invoker, mas não tenho esperança - meus testes mostraram que é apenas uma maneira de invocar o Maven a partir do código. E essas APIs não retornam dados de tempo de execução (apenas código de erro com todas as informações úteis impressas nos logs novamente).