java - 如何在 jenkinsfile 中将参数传递给 sbt

标签 java scala jvm sbt jenkins-pipeline

我正在尝试使用 sbt 将干净的组装步骤启动到 jenkinsfile 中。我使用以下步骤:

sh "${tool name: 'sbt-0.13.13', type: 'org.jvnet.hudson.plugins.SbtPluginBuilder$SbtInstallation'}/bin/sbt clean assembly -J-Dhttps.proxyHost=my-http-proxy -J-Dhttps.proxyPort=8080 -Xmx1g -Xms2g "

但它似乎不起作用,因为即使我在上面的命令中给出 Xms 参数,该参数也不会被覆盖。输出结果如下:

[Pipeline] tool
[Pipeline] sh
[workspace] Running shell script
+ /var/lib/jenkins/tools/org.jvnet.hudson.plugins.SbtPluginBuilder_SbtInstallation/sbt-0.13.13/bin/sbt clean assembly -J-Dhttps.proxyHost=egress-http-proxy -J-Dhttps.proxyPort=8080 -J-Xmx1g -J-Xms2g
Picked up JAVA_TOOL_OPTIONS: -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -Dsun.zip.disableMemoryMapping=true
Invalid initial heap size: -Xms7g-
Dorg.csanchez.jenkins.plugins.kubernetes.pipeline.PodTemplateStepExecution.defaultImage=172.30.37.22:5000/openpaas/jenkins-slave-jnlp:release
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

你知道为什么我的论点没有被使用或者你有什么解决方案吗?谢谢

最佳答案

实际上上面代码的问题来自于错误的格式行:

-Xms7g-Dorg.csanchez.jenkins.plugins.kubernetes.pipeline.PodTemplateStepExecution.defaultImage=172.30.37.22:5000/openpaas/jenkins-slave-jnlp:release

缺少 -Xms7g 和 -Dorg.csanchez 之间的空格。 要传递参数,您需要使用以下命令并在参数前加上 -J:

sh "${tool name: 'sbt-0.13.13', type: 'org.jvnet.hudson.plugins.SbtPluginBuilder$SbtInstallation'}/bin/sbt clean assembly -J-Dhttps.proxyHost=my-http-proxy -J-Dhttps.proxyPort=8080 -J-Xmx1g -J-Xms2g "

关于java - 如何在 jenkinsfile 中将参数传递给 sbt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56345310/

相关文章:

java - 如何编辑文件中的一行?在Java上

java - Netbeans 中的 Neo4J : error with Iterator

java - 将 1 转换为 01

Scala 通用子类型和蛋糕模式

arrays - 如何将 Any 转换为 Array[T] 保持 Scala 数组的不变性

java - JVM启动时如何在Java中运行初始化方法?

java - 如何将数据库表中的空字段映射为 double ?

generics - 关联参数化类型

scala - 验证错误: Uninitialized object exists on backward branch/JVM Spec 4. 10.2.4

java - 在Java中,原始静态变量和静态函数存储在哪里?