Salesforce 使用 ant 迁移工具进行部署 - 不使用 build.properties 文件



我想使用 Jenkins 环境变量作为凭据,如下面的代码所示,指定 Salesforce 登录用户名和密码,并将其传递给build.xml文件,以便我可以使用 Ant 迁移工具将代码部署到 Salesforce 平台。如何做到这一点?

詹金斯文件:

environment
{
SERVICE_CREDS=credentials('salesforce-creds')
}

stages
{
stage('Deploy')
{
steps
{
echo "Deploying"
bat 'ant -f ./build.xml CIDeploy'
}   
}
}

构建.xml:

<project basedir="." xmlns:sf="antlib:com.salesforce">
<property environment="env"/>

<condition property="sf.username" value=""> <not> <isset property="sf.username"/> </not> </condition>
<condition property="sf.password" value=""> <not> <isset property="sf.password"/> </not> </condition>
<condition property="sf.deployroot" value=""> <not> <isset property="sf.deployroot"/>  </not> </condition>


<!--##################################################### Deploy #########################################-->
<target name="CIDeploy">
<sf:deploy
username="$SERVICE_CREDS_USR"
password="$SERVICE_CREDS_PSW"
serverurl="https://login.salesforce.com"
deployRoot="src"/>
</target>
</project>

即使在登录到站点后,来自 Jenkins 控制台login.salesforce.com错误消息:

构建失败

C:\Program Files (x86(\Jenkins\workspace\abc\build.xml:26:用户名、密码、安全令牌无效或用户锁定。

Ant 允许您使用-D通过命令行传递参数。检查如何将参数传递给 Ant 任务?以获得一些灵感。

尝试从您的凭据中读取它们(抱歉,自从我配置 Jenkins 以来已经有一段时间了(并作为ant -f ./build.xml -Dsf.username=joe@joe.com -Dsf.password=MySuperSecretPass!!!andOptionallySecurityToken传递等。

最新更新