【问题标题】:maven2 - how to list all resources repository url from pom filemaven2 - 如何从 pom 文件中列出所有资源库 url
【发布时间】:2011-03-16 13:37:10
【问题描述】:

我正在寻找这样的东西:

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

...

【问题讨论】:

  • 调用上下文是什么?一个 Maven 插件实现?您正在使用 Maven 将代码构建到 JAR 中?还有什么?此外,POM 可以在许多地方包含 URL。您要提取哪些?
  • 我只想在其他地方打印一个远程存储库工件列表。所以我可以稍后复制它...

标签: java maven-2 repository pom.xml artifactory


【解决方案1】:

依赖项不知道它的“源存储库”,它可能不是唯一的,因此您将无法获取依赖项的“源 URL”没有真正解决它。一种方法(不使用 Maven 内部 API 编写代码)是使用dependency:purge-local-repository。来自Maven Dependency Plugin 文档:

运行该命令并将输出重定向到文件以进行后处理:

mvn dependency:purge-local-repository > raw.txt

正如我刚才提到的,如果您使用多个存储库,您可能需要进行一些后期处理,以将“成功”下载与“失败”尝试区分开来。这是 Rubular 上的 sample regex,它可能有助于实现这样的后处理(我提供了一些说明“问题”的内容)。

【讨论】:

  • 非常感谢!!!我在 Windows 上这样做只是为了获取 url... findstr "Downloading" raw.txt > urls.txt
  • @CelinHC:不客气。我刚刚更新了我的答案并发布了一个链接来说明使用多个存储库时的潜在问题(以及如何过滤输出)。
  • 这也适用于我,输出类似于:Downloading from central: https://repo.maven.apache.org/maven2/net/java/dev/jets3t/jets3t/0.9.3/jets3t-0.9.3.pom 但是,如果不明显,请注意...这将清除您的本地 maven 存储库!
【解决方案2】:

您可以使用Maven Dependency Plugin 来分析您的POM 的依赖关系。

mvn dependency:list -DoutputAbsoluteArtifactFilename=true -DoutputFile=dependencies.txt

【讨论】:

  • 在maven调用结束后使用SCP或FTP传输文件(别忘了给答案打分)。
猜你喜欢
  • 1970-01-01
  • 2021-06-17
  • 1970-01-01
  • 2016-07-05
  • 2011-06-17
  • 1970-01-01
  • 1970-01-01
  • 2013-09-04
  • 2021-03-06
相关资源
最近更新 更多