Jenkins围绕java系统属性使用引号

Jenkins围绕java系统属性使用引号,java,testing,jenkins,Java,Testing,Jenkins,我使用Jenkins在上执行一个shell脚本,作为后期构建步骤。问题是jenkins在我传递的系统属性周围加了引号。因此,应用程序无法看到传入了任何系统属性 如果Jenkins把它们用双引号括起来,那就好了,但单引号不行 原始shell脚本: java -jar -Dnetwork.configuration=Transport.uri=amqp://localhost:5672/stable,transportServer.database.driver=com.mysql.jdbc.Dri

我使用Jenkins在上执行一个shell脚本,作为后期构建步骤。问题是jenkins在我传递的系统属性周围加了引号。因此,应用程序无法看到传入了任何系统属性

如果Jenkins把它们用双引号括起来,那就好了,但单引号不行

原始shell脚本:

java -jar -Dnetwork.configuration=Transport.uri=amqp://localhost:5672/stable,transportServer.database.driver=com.mysql.jdbc.Driver,brokerServer.database.jpa=MYSQL "${WORKSPACE}/ffiq-integration/target/PackRunner.jar" -pack "${WORKSPACE}/ffiq-integration/src/main/resources" -name JenkinsIntegrationTests
詹金斯执行:

java -jar '-Dnetwork.configuration=Transport.uri=amqp://localhost:5672/stable,transportServer.database.driver=com.mysql.jdbc.Driver,brokerServer.database.jpa=MYSQL' "${WORKSPACE}/ffiq-integration/target/PackRunner.jar" -pack "${WORKSPACE}/ffiq-integration/src/main/resources" -name JenkinsIntegrationTests
有没有办法阻止詹金斯这样做


谢谢。

单引号不应该是个问题,
java
过程仍然将整个
-Dname=val
视为一个选项。更可能的问题是,您需要交换参数的顺序,也就是说,它应该是

java-D-jar“../PackRunner.jar”

(在
-jar
和jar文件名之间没有其他中间参数)。

我在将${WORKSPACE}变量传递给shell命令时遇到了类似的问题。