Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins能处理gui/非gui交互式python或java程序吗?_Python_Jenkins_Jenkins Plugins_User Interaction_Build Pipeline - Fatal编程技术网

Jenkins能处理gui/非gui交互式python或java程序吗?

Jenkins能处理gui/非gui交互式python或java程序吗?,python,jenkins,jenkins-plugins,user-interaction,build-pipeline,Python,Jenkins,Jenkins Plugins,User Interaction,Build Pipeline,我想创建一个构建管道,开发人员需要在一个属性文件中设置一些东西,该文件使用前端GUI填充 我尝试使用python运行示例CLI交互脚本,该脚本只要求输入一个名称,然后打印出来,但Jenkins只是等待了很久,然后被绞死。我看到它要求输入,但用户无法输入数据 编辑:当前正在运行Jenkins作为服务..或者有人推荐一个好的插件,或者是我创建python脚本的方式 首选项: 我更喜欢使用Python,因为它有点轻量级,但如果人们在其他语言方面取得了成功,我可以使用它 使用GUI菜单来填充数据会很酷,

我想创建一个构建管道,开发人员需要在一个属性文件中设置一些东西,该文件使用前端GUI填充

我尝试使用python运行示例CLI交互脚本,该脚本只要求输入一个名称,然后打印出来,但Jenkins只是等待了很久,然后被绞死。我看到它要求输入,但用户无法输入数据

编辑:当前正在运行Jenkins作为服务..或者有人推荐一个好的插件,或者是我创建python脚本的方式

首选项: 我更喜欢使用Python,因为它有点轻量级,但如果人们在其他语言方面取得了成功,我可以使用它

使用GUI菜单来填充数据会很酷,因为我可以使用选项框、下拉菜单并使其更美观,但这不是必须的,CLI比我们当前的部署要好得多

顺便说一句,在运行Python2.7和Java1.7的Windows7笔记本电脑上运行所有这些


对不起,这篇文章!希望人们能帮助我

抱歉,Jenkins不是交互式应用程序。它是为自动执行而设计的

向Jenkins作业(以及从该作业执行的所有操作)获取输入的唯一可行方法是在作业开始之前填充作业参数。诚然,Jenkins的参数输入GUI并不是最好的,但它可以完成这项工作。一旦Jenkins作业在作业开始时收集了作业参数,它就可以在作业期间的任何时候将这些参数传递给它执行的任何东西(Python、shell等等)。要做到这一点,必须有两件事是正确的:

  • 您需要在作业开始之前收集所有输入数据
  • 无论您的作业调用什么(Python、shell等),都需要能够通过命令行接收输入,而不是以交互方式接收输入
如何输入到程序中 设计良好的脚本应该能够简单地接受命令行上的参数:

/goodscript.sh MyName
将是最简单的方法,其中值
MyName
将存储在脚本的
$1
第一个参数中。后续命令行参数将在变量
$2
$3
等中提供

/goodscript.sh-name MyName-age 30
将是一种更好的方法,脚本可以通过在参数值之前指定一个参数名来获取多个参数,而不管其顺序如何。您可以阅读有关使用此参数传递方法的信息

上面的两个示例都假设
goodscript.sh
编写得足够好,能够处理这些命令行参数。如果脚本没有显式处理命令行参数,那么执行上述操作将毫无用处

您可以将一些输出“管道化”到一个交互式脚本,该脚本不是为显式处理命令行参数而设计的:
echo MyName |./interactivescript.sh
将值
MyName
传递给
interactivescript.sh
提供给用户的第一个交互式提示。问题是您只能将值传递给第一个交互式提示

詹金斯作业参数图形用户界面 正如我上面所说,您可以使用Jenkins GUI收集各种作业参数(下拉列表、复选框、文本输入)。我想你知道如何使用参数设置Jenkins作业。如果没有,请在作业配置中单击“此生成已参数化”复选框。如果您不知道如何设置,这是另一个问题,需要单独解释

但是,一旦Jenkins作业预先收集了所有参数,就可以在的“执行shell”步骤中引用它们。如果您使用的是Windows,则将其引用为
%PARAM\u NAME%
,对于Linux,将其引用为
$PARAM\u NAME


解释您需要的帮助:让您的脚本接受命令行参数,或者从jenkins作业GUI传递这些命令行参数,我将进一步扩展此答案

看起来不错!我可能需要制作一个python/shell脚本,该脚本将获取参数并将其写入文件,因为这些参数用于每个封闭源代码产品中,并且它从文件中读取。我会告诉你我是怎么做的!