Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gradle 验证工件是否已成功发布到nexus_Gradle_Nexus - Fatal编程技术网

Gradle 验证工件是否已成功发布到nexus

Gradle 验证工件是否已成功发布到nexus,gradle,nexus,Gradle,Nexus,我的要求是将快照工件发布到nexus快照存储库,并验证工件是否成功发布。 我正在考虑的方法是 验证已发布工件的时间戳(rest响应中的字段)是否晚于构建开始时间 比较最后一个最新工件是否具有不同的SHA1哈希,然后在我发布工件之后 从maven-metadata.xml中获取时间戳,并向带有时间戳的工件发出rest请求,查看它是否存在 关于方法#1,我无法看到任何rest api返回我已发布工件的时间戳,因此我尝试获取快照版本工件的整个响应,并解析XML并查找最新发布工件及其日期。只是为了验证它

我的要求是将快照工件发布到nexus快照存储库,并验证工件是否成功发布。 我正在考虑的方法是

  • 验证已发布工件的时间戳(rest响应中的
    字段)是否晚于构建开始时间
  • 比较最后一个最新工件是否具有不同的SHA1哈希,然后在我发布工件之后
  • 从maven-metadata.xml中获取时间戳,并向带有时间戳的工件发出rest请求,查看它是否存在
  • 关于方法#1,我无法看到任何rest api返回我已发布工件的时间戳,因此我尝试获取快照版本工件的整个响应,并解析XML并查找最新发布工件及其日期。只是为了验证它的真实性。对于这种方法,当我们在这里考虑快照时,返回的响应将包含特定版本的所有快照的信息,并且这些快照可能会根据开发工作而变得更大

    所以我很感兴趣的是,是否有一种简洁的方法来获取任何给定工件和版本的nexus timestamp/last modified

    旁注:以上方法都不能让我信服。我甚至无法获得关于验证工件是否成功发布的最佳方法的详细信息

    有没有更聪明、更稳健的方法

    • Nexus:2.12.0-01
    • 格拉德尔:4.6
    • 詹金斯:2.26

    我们正在使用artifactory,这是一种与nexus repository manager相当的技术,我们使用
    REST
    api来获取我们部署的
    sha256
    工件

    我相信Nexus也有类似的
    REST
    api,可以让您获得工件的元数据(包括sha)

    由于您正在处理快照生成,因此获取
    sha256
    而不仅仅是时间戳非常重要。原因是,如果其他人同时部署了相同的工件,您就不知道部署了哪个工件

    下面是对资产api的参考,可能会有所帮助

    最后,我建议切换到非快照构建。如果您将快照构建部署到存储库中,任何人都可以随时覆盖这些构建,如果您使用快照构建,您将面临一系列挑战