使用 ant 迁移工具部署 Salesforce - 不使用 build.properties 文件
Salesforce deploy using ant migration tool - without using build.properties file
我想使用 Jenkins 环境变量作为凭据,如下面的代码所示,以指定 Salesforce 登录用户名和密码,并将其传递给 build.xml 文件这样我就可以使用 Ant 迁移工具将代码部署到 Salesforce 平台。如何做到这一点?
詹金斯文件:
environment
{
SERVICE_CREDS=credentials('salesforce-creds')
}
stages
{
stage('Deploy')
{
steps
{
echo "Deploying"
bat 'ant -f ./build.xml CIDeploy'
}
}
}
build.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>
即使在登录 login.salesforce.com 站点后,Jenkins 控制台仍显示错误消息:
BUILD FAILED
C:\Program Files (x86)\Jenkins\workspace\abc\build.xml:26: Invalid username, password, security token; or user locked out.
Ant 允许您使用 -D
通过命令行传递参数。检查 How do I pass an argument to an Ant task? 以获取一些灵感。
尝试从您的凭据中读取它们(抱歉,我配置 Jenkins 已经有一段时间了)并作为 ant -f ./build.xml -Dsf.username=joe@joe.com -Dsf.password=MySuperSecretPass!!!andOptionallySecurityToken
等传递。
我想使用 Jenkins 环境变量作为凭据,如下面的代码所示,以指定 Salesforce 登录用户名和密码,并将其传递给 build.xml 文件这样我就可以使用 Ant 迁移工具将代码部署到 Salesforce 平台。如何做到这一点?
詹金斯文件:
environment
{
SERVICE_CREDS=credentials('salesforce-creds')
}
stages
{
stage('Deploy')
{
steps
{
echo "Deploying"
bat 'ant -f ./build.xml CIDeploy'
}
}
}
build.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>
即使在登录 login.salesforce.com 站点后,Jenkins 控制台仍显示错误消息:
BUILD FAILED
C:\Program Files (x86)\Jenkins\workspace\abc\build.xml:26: Invalid username, password, security token; or user locked out.
Ant 允许您使用 -D
通过命令行传递参数。检查 How do I pass an argument to an Ant task? 以获取一些灵感。
尝试从您的凭据中读取它们(抱歉,我配置 Jenkins 已经有一段时间了)并作为 ant -f ./build.xml -Dsf.username=joe@joe.com -Dsf.password=MySuperSecretPass!!!andOptionallySecurityToken
等传递。