web-dev-qa-db-ja.com

最新の安定したJenkinsビルドからファイルをダウンロードします

バッチファイルとwget/curlを使用して、ここからMultiverse-Core-.jarをダウンロードするにはどうすればよいですか? http://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/artifact/target/

タイムスタンプオプションを使用したいのですが、「last-modified」ヘッダーが存在しないため、「All filesinZip」リンクが機能しません。 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」を作成するだけです。スクリプトに何か問題がありますか?

4
Craft1n3ss

wgetは、再帰的なダウンロードのために_robots.txt_ファイルを尊重します。そして、その file はすべてを禁止します(Build NowPOSTedである必要があるため、理由はありませんJenkins、少なくとも最近のバージョンでは)。


JenkinsにはAPIがあります。ビルドを含むいくつかのオブジェクトには、APIエンドポイントがあります。この場合、_http://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/api/_。

_http://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/api/xml_または_http://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/api/json_を照会し、返されたテキストを解析してartifacts要素を探すことができます。 tree引数を使用すると、次のようなフィルタリングが可能になります。 _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の例では、テキストを無視してファイル名を選択します。

5
Daniel Beck