2015-12-02 3 views
0

Как мы можем добавить библиотеки в наш путь к классу workflow? например Я хочу выполнить некоторый Java-код в своем рабочем процессе, для которого требуется сторонняя библиотека? В моем конкретном случае хотелось бы использовать AWS Java SDK для выполнения различных задач AWS.Добавление дополнительных библиотек в Jenkins Workflow classpath

ответ

3

Workflow не на самом деле означает для вызова кода из внешней библиотеки Есть подробное объяснение того, почему в редакции JENKINS-26192

+0

Спасибо за этот указатель и объяснение Джесси. Итак, в моем конкретном случае, вызвавшем вопрос, скажем, мы хотим написать функцию многократного использования (я буду называть ее плагином) для развертывания в AWS CodeDeploy. Рекомендуемое решение для создания шага? В принципе, мы теряем много плагинов Jenkins при переходе к рабочему процессу - чтобы воссоздать некоторые из них (JIRA, XL Deploy и т. Д.) В удобном для использования расходном пакете, обычно вы рекомендуете писать шаг (https: // github.com/jenkinsci/workflow-plugin/tree/master/step-api)? – Neil

2

Возможно, есть плагин AWS, который вы можете установить в Jenkins, и его материал может использоваться из сценария рабочего процесса. В противном случае вы можете использовать: https://github.com/jenkinsci/workflow-plugin/blob/master/cps-global-lib/README.md для создания некоторых функций, которые вызывают Java SDK из кода groovy, который вы повторно используете.

Другим варианта заключается в использовании простых шагов Sh и использовать АМС CLI (это часто бывает проще для простых действий, как эти команды достаточно просты и хорошо документированы.

+0

Re: Плагин AWS в Jenkins - вы говорите, если я установлю данный плагин AWS, который, вероятно, включает в себя Java SDK, и это автоматически делает его доступными для libpath доступ к классам сценариев Jenkins (т. е. рабочий процесс)? На этой ноте - есть ли каталог lib на мастере Дженкинса, я мог бы поставить банки для этой цели? Re: cps-global-lib - не имею ли я такой же проблемы, что эти скрипты не будут выполняться без соответствующего класса? Или есть способ указать classpath для cps-global-lib? Re: AWS CLI - вот что я делаю сегодня, но по мере роста нашего использования было бы намного удобнее иметь Java API. – Neil

+0

@ Ничего хорошего, я не знаю, попробую и узнаю. –

+0

Да, у вас есть полный доступ к классам. Но есть некоторые ограничения: 1. Если вы используете песочницу, тогда большинство операций будут заблокированы и 2. Вы не можете хранить что-то, не сериализуемое в переменной (если вы не используете @NonCps, у которого есть другие ограничения). – amuniz

Смежные вопросы