我正在尝试在构建步骤Invoke Maven
中插入一个环境变量,该变量的值是在构建前的Execute Shell
阶段设置的
#!/bin/bash
ipAddressHub=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' selenium-hub)
echo $ipAddressHub
echo 'ipAddress=$ipAddressHub' > ipAddress.properties
现在,我想获取存储在ipAddress
中的ipAddress.properties
的值。我在Inject environment variables
之后使用Execute Shell
,并在ipAddress.properties
字段中提供Properties File Path
(不确定这是否正确),然后使用构建步骤Invoke Maven Artifactory
和在下面提供命令。
clean install -DipAddress=${ipAddressHub} -Denv=${env} -Durl=${appURL} -DserverIP=${ipAddress}
但是我没有在serverIP中获得该值,而是在控制台中获得了${ipAddressHub}
。我知道我在犯一些错误,有人可以指出正确的方法是什么吗?
答案 0 :(得分:0)
进行了一些浏览并找到了答案。
您只能在双引号字符串中嵌入变量。所以问题是
echo 'ipAddress=$ipAddressHub' > ipAddress.properties
将其更改为
echo 'ipAddress='"$ipAddressHub"'' > ipAddress.properties
它就像一个魅力
答案 1 :(得分:0)
我没有使用过插件(至少有一段时间没有使用过),并且我建议您只是错误地引用了它?
我相信是否要将其添加为环境变量(并且可以通过单击构建屏幕左侧的“环境变量”来检查它是否正在添加)。
您应该能够像下面这样引用它吗?
${env.ipAddressHub}
这是未经测试的。只是从内存中消失。