我正在寻找类似的东西:
List<URL> urls = listURLFromPOM("c:\pom.xml");
..
http://repo1.maven.org/maven2/org/apache/ibatis/ibatis-core/3.0/ibatis-core-3.0.jar
http://repo1.maven.org/maven2/org/apache/camel/camel-activemq/1.1.0/camel-activemq-1.1.0.jar
...
答案 0 :(得分:2)
依赖项不知道其“源存储库”,它可能不是唯一的,因此您将无法获取依赖项的“源URL”实际上没有解决它。一种方法(不使用Maven内部API编写代码)将使用dependency:purge-local-repository
。来自Maven Dependency Plugin文档:
dependency:purge-local-repository
告诉Maven清除本地存储库中的所有依赖项工件文件,并可选择重新解析它们。
运行该命令并将输出重定向到文件以进行后处理:
mvn dependency:purge-local-repository > raw.txt
正如我刚才提到的,如果您使用多个存储库,则可能需要执行一些后处理以将“成功”下载与“失败”尝试分开。这是一个关于Rubular的sample regex,可能有助于实现这样的后处理(我提供了一些说明“问题”的内容)。
答案 1 :(得分:1)
您可以使用Maven Dependency Plugin来分析您POM的依赖关系。
mvn dependency:list -DoutputAbsoluteArtifactFilename=true -DoutputFile=dependencies.txt