当前位置: 首页 > 知识库问答 >
问题:

以编程方式解析Maven工件URL

谢华彩
2023-03-14

简短:给定(groupId,artifactId,version,repository URL),我可以用编程方式让Maven解析工件URL吗?

Long:给定(groupId、artifactId、version、repository URL),可以下载一个Maven工件。工件的URL通常如下所示:

方案://{repository}/{groupId}/{artifactId}/{version}/{artifactId}-{version}.jar

对于(org.apache.maven,maven-core,3.0.0,http://repo.maven.org/maven2),工件URL解析为:

http://repo.maven.org/maven2/org/apache/maven/maven-core/3.0.0/maven-core-3.0.0.jar

使用上面的推断模式,我可以使用字符串连接来生成任何给定的工件URL(groupId、artifactId、version、repository URL)。但是,我不想依赖这个推断的模式,因为它可能会在Maven的未来版本中发生变化。

我可以通过编程方式让Maven为我解析给定的工件URL(groupId,artifactId,version,repository URL)吗?

共有1个答案

仇飞鹏
2023-03-14

许多Maven存储库都有一个API,您可以使用它来搜索工件。例如,中央Maven存储库有一个存储库,这里提供了该存储库的文档。

对于您的示例,中央存储库的API提供以下URL,用于直接链接到搜索:

http://search.maven.org/#searchga1g:“org.apache.maven”和a:“maven-core”和v:“3.0”

以及以下用于返回XML数据(或通过更改最后一个参数返回JSON)的URL:

http://search.maven.org/solrsearch/select?q=g:“org.apache.maven”和a:“maven-core”和v:“3.0”&wt=xml

在这种情况下,您仍然必须手动为JAR创建URL(或者为其刮取搜索结果),但其他存储库(如Nexus)直接在API结果中提供了这一点。

 类似资料:
  • 我正在尝试使用Thymeleaf模板呈现XML/JSON。我不想使用模板名称渲染视图,只想解析模板,如下所示。问题是我得到的只是模板名,而不是它的内容。 设置: 模板(src/main/resources/templates/早餐菜单.xml): 用法: 使用Thymeleaf3.0。0.BETA01。

  • 问题内容: 我需要以编程方式计算给定jar文件中已编译类,接口和枚举的数量(因此我需要三个单独的数字)。哪个API对我有帮助?(我不能使用第三方库。) 我已经尝试过非常棘手的方案,这似乎并不总是正确的。即,我将每个ZipEntry读入byte [],然后将结果提供给我的自定义类加载器,该加载器扩展了标准CalssLoader并将此byte []发送到ClassLoader.defineClass(

  • 我在弄清楚如何正确读取pem文件的私钥方面遇到了困难。我已经在stackoverflow上浏览了不同的主题,但是我找不到解决方案。我想实现的是从类路径中读取pkcs#8编码文件中的加密私钥,并将其作为内存密钥存储库中的密钥条目加载。下面是我试图解析的一个示例私钥,密码是。它纯粹是为了共享而创建的,所以它不是生产机器上使用的私钥。 我使用以下命令从p12文件创建了它: 有效示例(一次性)密钥对 我知

  • > 给定本地文件系统中的POM文件。 我希望通过编程方式获得该POM文件的有效POM。具体来说,我想做以下几点: null 这里有一个指向可以运行的示例Maven项目的GitHub链接:https://GitHub.com/sahilm/maven-resolver-test 示例程序执行以下操作: 从Maven Central下载最新的spring boot POM。 打印它的直接依赖项(包括父

  • 问题内容: 我想编写一个程序(最好在Java中),以分析和分析Java堆转储文件(由jmap创建)。我知道已经有很多很棒的工具(jhat,eclipse的MAT等),但是我想从特定的角度分析应用程序中的堆。 在哪里可以阅读有关堆转储文件的结构,如何读取该文件的示例等?找不到有用的搜索内容… 非常感谢。 问题答案: 我不熟悉jhat,但是Eclipse的MAT是开源的。他们的SVN链接可用,也许您可

  • 我想写一个程序(最好是在java中),它将解析和分析一个java堆转储文件(由jmap创建)。我知道有很多很棒的工具已经这样做了(jhat,eclipse的MAT,等等),但是我想从一个特定的角度来分析堆到我的应用程序。 我在哪里可以阅读堆转储文件的结构,示例如何阅读它,等等?没有找到任何有用的搜索... 非常感谢。