4

Используя пакетный файл и 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 ответ1

5

wget уважает файл robots.txt для рекурсивных загрузок. И этот файл запрещает все (без веской причины AFAICT, поскольку Build Now требует POST редактирования в 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, просто игнорировать текст и выбирать имена файлов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .