Maven 2 在持续集成服务器上检查maven快照依赖项更改

Maven 2 在持续集成服务器上检查maven快照依赖项更改,maven-2,continuous-integration,buildforge,Maven 2,Continuous Integration,Buildforge,有一个cruisecontrol插件,用于检查快照依赖项的更改,并在需要时触发构建。这涉及到使用Maven嵌入式程序下载依赖项,然后检查本地存储库中快照文件的时间戳。这可以正常工作,但需要下载所有父项和依赖项以检查一些时间戳 我正在开发一个分布式CI系统(例如Bambol/Buildforge),希望避免下载整个依赖关系层次结构来检查是否需要构建。可以通过检查远程存储库上的maven-metadata.xml来确定快照依赖项的构建日期 是否有任何插件或工具可以简化此过程?假设您使用maven作为

有一个cruisecontrol插件,用于检查快照依赖项的更改,并在需要时触发构建。这涉及到使用Maven嵌入式程序下载依赖项,然后检查本地存储库中快照文件的时间戳。这可以正常工作,但需要下载所有父项和依赖项以检查一些时间戳

我正在开发一个分布式CI系统(例如Bambol/Buildforge),希望避免下载整个依赖关系层次结构来检查是否需要构建。可以通过检查远程存储库上的maven-metadata.xml来确定快照依赖项的构建日期


是否有任何插件或工具可以简化此过程?

假设您使用maven作为构建过程,您需要一个插件来执行检查和条件构建

我不知道有哪款maven插件能完全满足你的需求。然而, 你应该能够拼凑出几个插件来达到同样的效果

使用带有“wget”的执行插件获取maven-metadata.xml。 然后使用xslt插件将生成的XML转换为布尔值,该值将指示是否发生了更新。您需要使用XPath连接到//metadata/versioning/lastUpdated节点,并将其与当前日期和时间进行比较。最后,您需要检查转换后的XML,以确定是否应该继续构建

中查找这些插件,它似乎提供了我所寻找的更高级别的API

Mercury提供了一种实现中立的方式来访问基于GAV的存储库,包括AV存储库,如OSGi。OSGi访问尚未实现。所谓访问,我指的是从存储库读取工件和元数据,并将工件写入存储库,元数据通过写入进行更新

所有调用都接受一组请求作为输入,并返回一个隐藏getResults的对象,该对象通常是mapresponse。响应对象具有以下便利方法:hasExceptions()、hasResults()、getExceptions()、getResults()

关键构建块之一是工件数据的层次结构:

  • ArtifactCoordinates-是真正的三个组件GAV
    • ArtifactBasicMetadata-是坐标加上类型/分类器加上方便的方法,如哈希计算等
  • ArtifactMetadata添加依赖项对象列表,捕获为ArtifactBasicMetadata
  • DefaultArtifact实现Artifact接口,并添加指向实际二进制文件的pomBlob(字节[])和file

我知道我可以拼凑起来,并且拥有。我正在寻找一个库、实用程序或避免黑客攻击的东西。你是说你正在构建一个分布式CI系统吗?不,我正在使用Buildforge作为CI系统,每个构建都可以在任意代理上进行,我希望避免解析整个Maven依赖层次结构来确定是否有任何快照发生了更改。执行此操作的信息位于存储库的maven-metadata.xml文件中。我正在寻找避免自己处理这些文件的工具。例如,“means”意味着“例如”,所以最初的问题听起来像是你在做类似于Bambol或Buildforge的事情,而不是专门使用这些工具。