我正在寻找这样的东西:
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
...
我正在寻找这样的东西:
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
...
依赖项不知道它的“源存储库”可能不是唯一的,因此如果不实际解析它,您将无法获取依赖项的“源 URL”。一种方法(不使用 Maven 内部 API 编写代码)是使用. 从Maven 依赖插件文档:dependency:purge-local-repository
dependency:purge-local-repository
告诉 Maven 从本地存储库中清除所有依赖项工件文件,并可选择重新解析它们。
运行该命令并将输出重定向到文件以进行后处理:
mvn dependency:purge-local-repository > raw.txt
正如我刚才提到的,如果您使用多个存储库,您可能需要进行一些后期处理,以将“成功”下载与“失败”尝试区分开来。这是一个关于 Rubular 的示例正则表达式,它可能有助于实现这样的后处理(我提供了一些说明“问题”的内容)。
您可以使用Maven 依赖插件来分析 POM 的依赖关系。
mvn dependency:list -DoutputAbsoluteArtifactFilename=true -DoutputFile=dependencies.txt