2017-06-21 72 views
1

我想通过HTTP端点公开Maven依赖项构件(带有版本)的列表。这blogpost解决了我的问题,但不幸的是它在bash而不是Java/Scala。列出Java/Scala中的Maven依赖关系

mvn -o dependency:list \ 
| grep ":.*:.*:.*" \ 
| cut -d] -f2- \ 
| sed 's/:[a-z]*$//g' \ 
| sort -u 

输出

com.amazonaws:amazon-sqs-java-extended-client-lib:jar:1.0.0 
com.amazonaws:aws-java-sdk-acm:jar:1.10.64 
com.amazonaws:aws-java-sdk-api-gateway:jar:1.10.64 
com.amazonaws:aws-java-sdk-autoscaling:jar:1.10.64 
com.amazonaws:aws-java-sdk-cloudformation:jar:1.10.64 
com.amazonaws:aws-java-sdk-cloudfront:jar:1.10.64 
com.amazonaws:aws-java-sdk-cloudhsm:jar:1.10.64 
com.amazonaws:aws-java-sdk-cloudsearch:jar:1.10.64 

有人能分享如何在代码中实现这一目标的一些指点?

+1

最简单的可能是运行该命令来创建一个文件,然后将该文件作为静态资源提供。 – puhlen

回答

1

最简单的方法是创建一个maven任务,以便在编译时将依赖项打印到资源目录。

另一种方法是,您可以检查ClassLoaderclasspath,获取罐子并使用工件制作出来,但这非常脆弱得多。