从最新的稳定 Jenkins 版本下载文件

从最新的稳定 Jenkins 版本下载文件

使用批处理文件和 wget/curl,我如何从这里下载 Multiverse-Core-.jar?http://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/artifact/target/

我想使用时间戳选项,但“zip 中的所有文件”链接不起作用,因为它的“上次修改时间”标头不存在。如果我使用http://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/artifact/target/Multiverse-Core-2.5.jar,那么时间戳选项就可以工作了,但我希望能够使用第一个链接,而不必在每次版本号更改时都更改它。我试过了

wget -r -l 1 -nH -A jar -R *javadoc.jar,*sources.jar http://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/artifact/target/

但它只是在当前目录中创建了“job\Multiverse-Core\lastStableBuild\artifact\target”,而没有文件。我的脚本有问题吗?

答案1

wget尊重robots.txt文件的递归下载。并且文件禁止一切(据我所知没有充分的理由,因为立即构建需要POST在 Jenkins 中进行编辑,至少在最近的版本中是这样)。


Jenkins 有一个 API。包括构建在内的多个对象都有 API 端点。在本例中为http://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/api/

您可以查询http://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/api/xmlhttp://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/api/json解析元素的返回文本artifactstree参数允许过滤,例如http://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/api/xml?tree=artifacts%5BrelativePath%5D

<freeStyleBuild>
<artifact>
<relativePath>target/Multiverse-Core-2.5-javadoc.jar</relativePath>
</artifact>
<artifact>
<relativePath>target/Multiverse-Core-2.5-sources.jar</relativePath>
</artifact>
<artifact>
<relativePath>target/Multiverse-Core-2.5.jar</relativePath>
</artifact>
</freeStyleBuild>

或者,使用 XPath 进行更强大的过滤,但请注意,在最近的安全更新中,某些功能(如text())已被禁用。例如:http://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/api/xml?xpath=/freeStyleBuild/artifact/relativePath&wrapper=artifacts

从命令行,您可以解析 XML(例如使用 的最新版本)xmllint,或者在 Xpath 示例中,只忽略文本并选择文件名。

相关内容