我是靠谱客的博主 眼睛大小丸子,这篇文章主要介绍Ant for salesforce,现在分享给大家,希望可以做个参考。

Ant for salesforce

简介:

  1. Ant是Java的生成工具,是Apache的核心项目;
  2. Ant类似于Unix中的Make工具,都是用来编译、生成;
  3. Ant是跨平台的,而Make不能;
  4. Ant的主要目的就是把你想做的事情自动化,不用你手动一步一步做,因为里面内置了javac、java、创建目录、复制文件等功能,所以可以直接点击Ant文件,即可编译生成你的项目。
    下载地址:http://ant.apache.org/bindownload.cgi

Ant配置

无论我们是用这个工具来处理什么,比如java程序可能用到,salesforce迁移等等场景,我们首先要做的,是将ant的使用环境配置好。

  1. 在Ant安装之前需要安装好JDK,并配置好JAVA_HOME;
  2. 新建环境变量ANT_HOME:值为ANT的主目录;
  3. 在path中配置%ANT_HOME%/bin;
  4. 配置完成之后,打开命令行,输入ant,当出现“Buildfile: build.xml does not exist! Build failed”时说明配置完成;

Ant for salesforce
业务场景:客户目前使用的org将要到期了,我们需要将系统中所有的对象,字段,功能,审批等等等。 都要重新刷到一个全新并且跟当前org无关的环境中。当然我们可以使用Eclipse来操作,其实操作原理类似,只不过我更习惯使用ant这个工具来做。要我总结的话就是,方便,快速,暴力。

废话不多少,我们直接看工具该如何使用。
准备工作:

  1. 下载安装。
  2. 配置好环境变量,能够正确执行指令返回结果。
  3. 准备好ant-salesforce.jar 这个jar包是连接salesforce环境的jar包。
  4. 配置好build.xml文件(类似于java项目中的xml文件,告诉该怎么加载或者该如何执行)下文会贴出能正常使用的一个build.xml。有兴趣的可以再深入研究下。
  5. 配置好bulid.properties文件(连接salesforce环境Username,Password等)
  6. 配置好package.xml 文件(该从salesforce环境中down哪些,该部署哪些东西到需要的环境)
  7. 执行retrieve 指令,下载到本地环境
  8. 执行deploy 指令,部署至需要的环境中。

build.xml
注:上图是我的build.xml配置文件,如果使用的话,需要跟我这边的文件夹保持一致。文章末尾我会贴出来。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<project name="Sample usage of Salesforce Ant tasks" default="test" basedir="." xmlns:sf="antlib:com.salesforce"> <property file="build.properties"/> <property environment="env"/> <!-- Setting default value for username, password and session id properties to empty string so unset values are treated as empty. Without this, ant expressions such as ${sf.username} will be treated literally. --> <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> <!-- Shows retrieving code; only succeeds if done after deployCode --> <target name="retrieve"> <mkdir dir="retrieveSource"/> <!-- Retrieve the contents listed in the file codepkg/package.xml into the codepkg directory --> <sf:retrieve username="${sf.username}" password="${sf.password}" sessionId="${sf.sessionId}" serverurl="${sf.serverurl}" maxPoll="${sf.maxPoll}" retrieveTarget="retrieveSource" unpackaged="retrieve/package.xml"/> </target> <!-- Shows check only; never actually saves to the server --> <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> <!-- Shows check only; never actually saves to the server --> <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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# build.properties # # Specify the login credentials for the desired Salesforce organization sf.username = xxxx@liningchao.com sf.password = xxxxx #sf.sessionId = <Insert your Salesforce session id here. Use this or username/password above. Cannot use both> #sf.pkgName = <Insert comma separated package names to be retrieved> #sf.zipFile = <Insert path of the zipfile to be retrieved> #sf.metadataType = <Insert metadata 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。 其他的同理)

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Package xmlns="http://soap.sforce.com/2006/04/metadata"> <types> <members>*</members> <name>ApexClass</name> </types> <types> <members>*</members> <name>ApexPage</name> </types> <types> <members>*</members> <name>ApexTrigger</name> </types> <types> <members>*</members> <name>AuraDefinitionBundle</name> </types> <types> <members>*</members> <name>StaticResource</name> </types> <types> <members>*</members> <name>CustomTab</name> </types> <types> <members>*</members> <name>CustomLabels</name> </types> <types> <members>*</members> <name>FlexiPage</name> </types> <version>38.0</version> </Package>

完成上面三个配置后,打开黑色的控制台。注意:首先要进入你的文件夹,然后执行ant -p build.xml (这个步骤通常可以省略),然后执行ant retrieve, 看到成功后。切换bulid.properties文件中的环境,(也就是要部署的环境的配置信息)。然后执行 ant deploy。 就可以从控制台中看到部署过程,当然,部署的过程,也可以通过目标Org的开发状态能跟踪到。

Tips:

  1. 过程中可能会遇到一些错误,调试的办法只能是一个一个解决,有的可能是因为不同的Org环境导致的等等等。
  2. 如果发现不能解决的错误,建议大家直接去修改down在本地的xml文件。
  3. 我也没有过多的深入研究,如果有好的idea可以留言交流,以上仅供大家做参考使用。
  4. 最后贴出我的一个目录结构
    这里写图片描述
    这里写图片描述

最后

以上就是眼睛大小丸子最近收集整理的关于Ant for salesforce的全部内容,更多相关Ant内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部