我是靠谱客的博主 眼睛大小丸子,最近开发中收集的这篇文章主要介绍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配置文件,如果使用的话,需要跟我这边的文件夹保持一致。文章末尾我会贴出来。

<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

# 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。 其他的同理)

<?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 for salesforce所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部