将jenkins构建参数传递给sbt插件

时间:2016-05-26 10:02:56

标签: scala jenkins

我需要创建一个jenkins项目来编译和测试scala项目。有几个scala项目,因此构建将参数化并为每个项目运行。

要处理scala项目,我想使用sbt插件并指定"子目录"使用构建参数" project_name"。

我尝试使用$ project_name,$ {project_name},%project_name%传递参数但没有一个工作。我得到如下输出(对于第一个变化):

[$project_name] $ cmd.exe /C " java -Dsbt.log.noformat=true -jar C:\.......\sbt\bin\sbt-launch.jar compile test "
The directory name is invalid
FATAL: command execution failed: Cannot run program "cmd.exe" (in directory "C:\.......\$project_name"): CreateProcess error=267, The directory name is invalid
java.io.IOException: Cannot run program "cmd.exe" (in directory "C:\.......\$project_name"): CreateProcess error=267, The directory name is invalid

如果我添加"执行Windows批处理命令"步骤,我可以使用%project_name%。

将参数传递给脚本

什么是正确的语法?

2 个答案:

答案 0 :(得分:0)

这是适合我的解决方案。

我没有指定要构建的每个项目的“子目录路径”,而是将其留空,并为jenkins作业(sbt compile)定义了一个自定义工作区来运行。

与“子目录路径”不同,自定义工作空间字段中的环境变量在构建过程中被解析为值。

每次我运行这个工作时,我都会指定一个scala项目的完整路径。

所以我需要的是将项目目录的路径作为作业参数(p.one { border-style: solid; border-width: 5px; } )并使用它来定义自定义工作区(<p class="one">Some text.</p> )。选中“常规 - &gt;高级”下的“使用自定义工作区”框,会显示“目录”字段。

custom workspace

只要我的工作目录设置完毕,我就可以使用sbt插件运行我想要的sbt命令

sbt plugin

答案 1 :(得分:0)