查找特定插件的 Maven 存储库中可用的版本列表?

Posted

技术标签:

【中文标题】查找特定插件的 Maven 存储库中可用的版本列表?【英文标题】:Finding list of versions available in a Maven repository for a specific plugin? 【发布时间】:2010-11-25 08:02:14 【问题描述】:

鉴于我的 pom.xml 中的以下存储库 URL,我如何确定存储库中可用的 spring 和 hibernate 的最新版本? http://repo1.maven.org/maven2

【问题讨论】:

【参考方案1】:

检索maven-metadata.xml 文件,该文件位于工件目录中,例如https://repo1.maven.org/maven2/com/sun/media/jai_codec/maven-metadata.xml 用于 groupId com.sun.media 和 artifactId jai_codec 的工件。

<?xml version="1.0" encoding="UTF-8"?>

<metadata>
  <groupId>com.example</groupId>
  <artifactId>project</artifactId>
  <versioning>
    <latest>0.0.5</latest>
    <release>0.0.5</release>

    <versions>
      <version>0.0.3</version>
      <version>0.0.4</version>
      <version>0.0.5</version>
    </versions>
    <lastUpdated>20090725212606</lastUpdated>
  </versioning>

</metadata>

【讨论】:

如何以自动方式(从命令行)获取 maven 插件的 URL?【参考方案2】:

以编程方式还是手动方式?

由于存储库通过 HTTP 运行,您只需手动导航即可:

http://repo2.maven.org/maven2/org/springframework/spring/ http://repo2.maven.org/maven2/org/hibernate/hibernate/ http://repo2.maven.org/maven2/org/hibernate/hibernate-core/

【讨论】:

【参考方案3】:

正如罗伯特的回答所说,存储库中每个工件的 maven-metadata.xml 文件都包含您需要的版本信息。特别注意元数据中的 latestrelease 元素。 latest 元素表示要发布的最后一个版本,但这可能不是您想要的版本。例如,它可以是旧版本的维护版本、候选版本或里程碑。发布版本表示打算作为发布处理的最后一个发布版本,因此通常您希望使用此版本。

有关信息,Maven super POM 有一个特殊的 release-profile 配置文件,通过设置 performRelease 属性激活(例如,通过在命令行上传递 -DperformRelease)。除此之外,激活此属性将设置部署插件的 updateReleaseInfo 属性,以便在部署时更新元数据。

【讨论】:

【参考方案4】:

根据实际用例,值得关注http://www.mojohaus.org/versions-maven-plugin/

【讨论】:

以上是关于查找特定插件的 Maven 存储库中可用的版本列表?的主要内容,如果未能解决你的问题,请参考以下文章

Maven 检查存储库中更新的依赖项

如果存储库中有相同快照版本的发布版本,如何停止 Maven 构建?

maven插件存储在哪里

最新版本的声纳 Maven 插件已损坏

如何强制 IntelliJ 中的 Maven 从本地 .m2 存储库中提取特定依赖项

在当前项目和存储库中可用的插件组 [] 中找不到前缀“war”的插件 [重复]