A blog dedicated to Salesforce Ohana

Salesforce Deployment Guide using Ant Migration Tool

In Salesforce, we have three different ways by which we can perform the deployment activities. They are -
  • Change Sets - This is available from Salesforce.com site.
  • By using "Deploy to force.com server" option in Eclipse.
  • Using Java based tool - ANT.
In this post, I will provide a complete deployment guide using Ant Migration Tool.

Before I start, let me tell you the prerequisite for doing deployment using Ant Migration Tool.
  • Requirement - Java: You should have java installed in your machine. To verify whether you have java installed, do the below steps -
    • Open a command prompt
    • At the prompt, type java -version. You should see something like below which indicates your installed java version
  • Requirement - Ant: You should have ant installed in your machine. To install ant, do the below steps -
    • Download ant from http://ant.apache.org/bindownload.cgi
    • Set environment variable "ANT_HOME" which should be the path of your installation. Add the bin folder to your path as well like %ANT_HOME%/bin
    • Verify by issuing the command ant -version from command prompt. You should see something like below which indicates your installed ant version.
Once you have configured Java and Ant successfully into your machine, it's time to download the Force.com Migration Tool. You can download the same by logging into your Org and then Setup | Develop | Tools and then click Force.com Migration Tool. Once downloaded, extract the zip file and copy ant-salesforce.jar file to the lib directory of your ANT installation path.

To start with the deployment process, you need mainly below files -
  • build.xml - This file will exercise the deploy and retrieve API calls
  • build.properties - This file will be used to store your Salesforce credentials and other properties in order to run sample ant tasks.
  • package.xml - This file will be used to identify what are the stuffs we are interested from org (ex. Custom Objects, Standard Object, Custom Fields, Apex Classes, VisualForce Pages etc.)
Now we will do two exercises here. In first exercise, we will retrieve/download specified items from Salesforce Org and save it in own local machine. And in the next exercise, we will upload the previously downloaded items to our Production Org.

Exercise 1 -
In this exercise, we will retrieve/download specified items from Salesforce Org and save it in own local machine. 
The build.properties file is -
The package.xml file is - 
Note - In my Sandbox, I have created a new custom object names Country (API Name: Country__c). This object is not present in my Production environment. What I am trying to do is download County__c and save it in my local machine.

The build.xml file is -

Now we will execute the ant command ant fetchNewItems to download the item from Salesforce and Save it into my local machine.
As a result, we will see that a new folder with retrieveOutput is created and content from Salesforce is copied into that folder. 
So COOL. We now know how to copy items from Salesforce Org to Local Machine. 
Just for your information, you can download not only Custom Objects, but you can download anything like Standard Object, Standard Fields, Custom Fields, Apex Classes, Visual Force Pages etc. The only thing is that you need to mention that in your package.xml file.

Below is one example package.xml file, which can be used to download -
  • All Custom Objects
  • All Apex Classes
  • All Visual Force Pages.

Now let's move to the new exercise.
Exercise 2 -
In this exercise, we will upload the previously downloaded items to our Production Org.
The build.properties file is -
The package.xml file is -
This is the same package.xml mentioned in Exercise 1.
The build.xml file is -
Now we will execute the ant command ant deploy to deploy the items present in the folder "retrieveOutput" into Production environment.

DONE. So with the above two exercises, we now know how to deploy changes from one Org to another with Ant. We can combine steps from the above two exercised to achieve the below requirement -

I am sure you are now feeling more comfortable in using Ant for deployment purpose. Please let me know if you have any specific doubts. Thanks.


  1. Nowadays, most of the businesses rely on cloud based CRM tool to power their business process. They want to access the business from anywhere and anytime. In such scenarios, salesforce CRM will ensure massive advantage to the business owners. Salesforce Training | Salesforce Training in Chennai

  2. You have provided an nice article, Thank you very much for this one..DotNet Project Center in Chennai | DotNet Project Center in Velachery

  3. Good Post! Thank you so much for sharing this pretty post, it was so good to read and useful to improve my knowledge as updated one, keep blogging…
    Best Selenium Training Institute in Chennai | Selenium Training Institute in Velachery

  4. Excellent information with unique content and it is very useful to know about the information based on blogs
    Best VMware Training Institute in Chennai | Best VMware Training Institute in Velachery

  5. I believe there are many more pleasurable opportunities ahead for individuals that looked at your site...Summer Courses in Chrompet | Summer Courses in Chennai


Follow Me

Enter your email address:

Delivered by FeedBurner

Popular Posts


Salesforce (104) Apex (44) admin (27) ADM (20) visualforce (20) dev 501 (19) integration (18) learn salesforce (18) 501 (16) SOAP (13) tutorial (11) Certification. (9) lightning (8) Trigger (7) test class (7) unit testing (7) Sharing and Visibility (6) design pattern (6) report (6) security (6) trailhead (6) Advanced Admin (5) Certification (5) New Features (5) SOQL (5) css (5) dashboard (5) debug (5) developer (5) formula (5) javascript (5) mobile (5) salesforce release (5) service cloud (5) solution management (5) use case (5) JSON (4) Lightning Experience (4) WebSphere (4) best practice (4) cast iron (4) component (4) deployment (4) github (4) html (4) polymer (4) profiles (4) responsive (4) tdd (4) ui (4) Advanced Apex (3) Architect (3) Kitchener Developer Group (3) Live Chat (3) Performance (3) Products (3) Role (3) Sales Cloud (3) Salesforce DX (3) Scratch Org (3) Study Notes. (3) Summer15 (3) Tips (3) dynamic apex (3) event (3) license (3) map (3) mapbox (3) singleton (3) version controlling (3) Bulkify (2) Data Architecture and Management Certification (2) Distributed Version Controlling (2) Eclipse (2) Einstein (2) Enterprise Territory Management (2) Financial Services Cloud (2) Force.com IDE (2) Governor Limit (2) Groups (2) IBM (2) Implicit Sharing (2) JourneyToCTA (2) Lightning Design System (2) Live Agent (2) Metadata (2) Online Event (2) Opportunity (2) Price Book (2) REST (2) SOSL (2) Sharing (2) Spring 15 (2) Summer17 (2) Territory (2) ant (2) automation tool (2) basic (2) chatter (2) coding (2) communication (2) console (2) controller (2) documentation (2) flow (2) git (2) jquery (2) logging (2) permission (2) process builder (2) release (2) salesforce1 (2) strategy (2) xml (2) Action Plan (1) Action Plan Template (1) Agent Productivity (1) Analytics (1) Apex Sharing (1) Asynchronous callout (1) Bots (1) Browser (1) Bulk data load (1) CTA (1) Calendar (1) Canon (1) Case Management (1) Cheat Sheet (1) Classic (1) Community (1) Contact Center (1) Continuation (1) Continuous Integration (1) Convert (1) Cookie (1) Custom Metadata (1) Custom Object (1) Customer (1) Decorator Design Pattern (1) Dev Hub (1) Devops (1) Diwali (1) Email (1) FSC (1) Goals (1) Guide (1) Household (1) Ideas (1) Improvement (1) KPIs (1) Kitchener User Group (1) Large Data Volume (1) LastModifiedDate (1) Manual Sharing (1) Metrics (1) OWD (1) Omni-Channel (1) Partner (1) Person Account (1) Photo (1) Platform Developer I (1) Presentation (1) Product Schedule (1) Profile (1) Public Site (1) Query Plan (1) QuickReference (1) Reports (1) Retrieve (1) Role Hierarchy (1) SFDX (1) Salesforce Optimizer (1) Session (1) Sharing Rule (1) Sharing Sets (1) Site (1) Skills (1) Snap-ins (1) Spring 17 (1) Summer14 (1) Summer16 (1) Switch (1) SystemModStamp (1) User License (1) Users (1) Webservice (1) Winter'15 (1) Winter'17 (1) access (1) agile (1) app (1) approval process (1) aura (1) awesome (1) backup (1) bitbucket (1) book (1) campaign (1) change set (1) code (1) code coverage (1) configuration (1) csv (1) custom button (1) custom settings (1) customization (1) data loader (1) database (1) delegate Admin (1) describe (1) dom (1) dreamforce (1) duplicate (1) dynamic (1) equals (1) error (1) field-level security (1) folder (1) ftp (1) generic (1) gift (1) global describe (1) hashcode (1) import wizard (1) jenkins (1) keynote (1) long running requests (1) monitoring (1) mysql (1) object (1) page layout (1) personal (1) power of one (1) record type (1) relationship (1) request (1) review (1) sub-tab (1) tab (1) username (1) visual workflow (1) workflow (1)

Total Subscribers

Total Pageviews