2015-12-02 34 views
0

我们如何将库添加到我们的工作流类路径中?例如我想在我的工作流程中执行一些需要第三方库的java代码?在我的特殊情况下,想要使用AWS Java SDK来执行各种AWS任务。向Jenkins添加额外的库工作流类路径

回答

3

工作流程是不是真的意味着从外部库调用代码。有一个详细的解释为什么在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来创建一些函数,从你重用的groovy代码中调用Java SDK。

另一种选择是使用纯SH步骤和使用AWS CLI(这往往是最简单的,共同的行动为这些命令是相当简单的,有据可查。

+0

回复:詹金斯AWS插件 - 你是否说我是否安装了一个给定的AWS插件,它可能包括Java SDK,并自动使它的库在Jenkins脚本的类路径中可用(即工作流程)? 在那个笔记上 - 詹金斯大师有没有一个lib目录我可以为此目的放入罐子? 回复:cps-global-lib - 难道我没有同样的问题,如果没有合适的类路径,这些脚本也不会执行?或者有没有一种方法来指定cps-global-lib的类路径? 回复:AWS CLI - 这就是我今天正在做的事情,但随着我们的使用增长,使用Java API会更加方便。 – Neil

+0

@尼尔好Q,我不知道,我会试试看。 –

+0

是的,你基本上有完整的类路径可用。但是有一些限制:1.如果正在使用沙箱,那么大多数操作将被阻止,以及2.您不能在变量中存储不可序列化的内容(除非您使用@NonCps,其他限制)。 – amuniz