简介:
无论我们是用这个工具来处理什么,比如java程序可能用到,salesforce迁移等等场景,我们首先要做的,是将ant的使用环境配置好。
Ant for salesforce
业务场景:客户目前使用的org将要到期了,我们需要将系统中所有的对象,字段,功能,审批等等等。 都要重新刷到一个全新并且跟当前org无关的环境中。当然我们可以使用Eclipse来操作,其实操作原理类似,只不过我更习惯使用ant这个工具来做。要我总结的话就是,方便,快速,暴力。
废话不多少,我们直接看工具该如何使用。
准备工作:
build.xml
注:上图是我的build.xml配置文件,如果使用的话,需要跟我这边的文件夹保持一致。文章末尾我会贴出来。
<project name="Sample usage of Salesforce Ant tasks" default="test" basedir="." xmlns:sf="antlib:com.salesforce">
<property file="build.properties"/>
<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.sessionId" value=""> <not> <isset property="sf.sessionId"/> not> condition>
<taskdef resource="com/salesforce/antlib.xml" uri="antlib:com.salesforce">
<classpath>
<pathelement location="../ant-salesforce.jar" />
classpath>
taskdef>
<target name="retrieve">
<mkdir dir="retrieveSource"/>
<sf:retrieve username="${sf.username}" password="${sf.password}" sessionId="${sf.sessionId}" serverurl="${sf.serverurl}" maxPoll="${sf.maxPoll}" retrieveTarget="retrieveSource" unpackaged="retrieve/package.xml"/>
target>
<target name="deploy">
<sf:deploy username="${sf.username}" password="${sf.password}" sessionId="${sf.sessionId}" serverurl="${sf.serverurl}" maxPoll="${sf.maxPoll}" deployRoot="retrieveSource" rollbackOnError="true"/>
target>
<target name="remove">
<sf:deploy username="${sf.username}" password="${sf.password}" sessionId="${sf.sessionId}" serverurl="${sf.serverurl}" maxPoll="${sf.maxPoll}" deployRoot="remove"/>
target>
project>
bulid.properties
注意:需要连接的环境,下面要注意login和test的区别。看是什么样的环境。你自己环境的username 和 password
# build.properties
#
# Specify the login credentials for the desired Salesforce organization
sf.username = [email protected]
sf.password = xxxxx
#sf.sessionId = Use this or username/password above. Cannot use both>
#sf.pkgName = package names to be retrieved>
#sf.zipFile = of the zipfile to be retrieved>
#sf.metadataType = type name for which listMetadata or bulkRetrieve operations are to be performed>
# Use 'https://login.salesforce.com' for production or developer edition (the default if not specified).
# Use 'https://test.salesforce.com for sandbox.
sf.serverurl = https://login.salesforce.com
sf.maxPoll = 200
# If your network requires an HTTP proxy, see http://ant.apache.org/manual/proxy.html for configuration.
#
package.xml
retrieve 里的package.xml 配置文件,也就是需要down的东西或者说需要部署的东西。我配置的这个不是全的,只是一部分org里面的东西,如果你想要更多,开发人员的话可以通过sublime或者eclipse 找到项目down下来的package.xml(它的生成是根据项目的配置信息生成的,拿sublime举例:在setting中如果配置了”CustomObject” 那么down下来的项目配置文件中就会有CustomObject。 其他的同理)
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>*members>
<name>ApexClassname>
types>
<types>
<members>*members>
<name>ApexPagename>
types>
<types>
<members>*members>
<name>ApexTriggername>
types>
<types>
<members>*members>
<name>AuraDefinitionBundlename>
types>
<types>
<members>*members>
<name>StaticResourcename>
types>
<types>
<members>*members>
<name>CustomTabname>
types>
<types>
<members>*members>
<name>CustomLabelsname>
types>
<types>
<members>*members>
<name>FlexiPagename>
types>
<version>38.0version>
Package>
完成上面三个配置后,打开黑色的控制台。注意:首先要进入你的文件夹,然后执行ant -p build.xml (这个步骤通常可以省略),然后执行ant retrieve, 看到成功后。切换bulid.properties文件中的环境,(也就是要部署的环境的配置信息)。然后执行 ant deploy。 就可以从控制台中看到部署过程,当然,部署的过程,也可以通过目标Org的开发状态能跟踪到。
Tips: