我需要创建一个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%。
将参数传递给脚本什么是正确的语法?
答案 0 :(得分:0)
这是适合我的解决方案。
我没有指定要构建的每个项目的“子目录路径”,而是将其留空,并为jenkins作业(sbt compile)定义了一个自定义工作区来运行。
与“子目录路径”不同,自定义工作空间字段中的环境变量在构建过程中被解析为值。
每次我运行这个工作时,我都会指定一个scala项目的完整路径。
所以我需要的是将项目目录的路径作为作业参数(p.one {
border-style: solid;
border-width: 5px;
}
)并使用它来定义自定义工作区(<p class="one">Some text.</p>
)。选中“常规 - &gt;高级”下的“使用自定义工作区”框,会显示“目录”字段。
只要我的工作目录设置完毕,我就可以使用sbt插件运行我想要的sbt命令
答案 1 :(得分:0)
这几乎肯定是Jankins插件中的一个错误。请在插件问题页面中报告: