Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ant not loading salesforce task definitions?

The Question

I'm trying to use the Force.com Migration Tool (a custom ant library) on a linux box and can't for the life of me figure out how to get ant to see that library. What am I doing wrong?

The Error Message

BUILD FAILED
/home/ec2-user/ant/ucp/build.xml:48: Problem: failed to create 
task or type antlib:com.salesforce:retrieve
Cause: The name is undefined.

The Background

I installed ant using yum install ant and then I dropped the Force.com Migration Tool (ant-salesforce.jar) into /usr/share/ant/lib. I'm able to see this library when I run ant -diagnostics, but none of the tasks for that library (should be seeing deploy, retrieve, etc.). I've uploaded a gist with the full output from ant -diagnostics.

-------------------------------------------
 ANT_HOME/lib jar listing
-------------------------------------------
ant.home: /usr/share/ant
ant-bootstrap.jar (19837 bytes)
ant-salesforce.jar (3293054 bytes)
ant.jar (1942059 bytes)
ant-launcher.jar (18418 bytes)

After lots of googling and manual reading I tried the following to no avail (NB: the above diagnostics is without any of the below changes). I know I'm missing something obvious :(

  1. Setting $ANT_HOME export ANT_HOME=/usr/share/ant
  2. Fiddling with permissions chmod +x /usr/share/ant/lib/salesforce-jar
  3. Fiddling with groups chown root:root /usr/share/ant/lib/salesforce-jar
  4. Passing in class with -lib ant -lib /usr/share/ant/lib/salesforce-jar retrieve ...
  5. Passing in lib folder with -lib ant -lib /usr/share/ant/lib retrieve ...
  6. Adding $ANT_HOME to $PATH export PATH=$PATH:$ANT_HOME/bin
like image 284
Ralph Callaway Avatar asked Dec 26 '22 04:12

Ralph Callaway


1 Answers

How about keeping ant-salesforce.jar under /home/ec2-user/ant/ucp and then change the taskdef element to look like this:

<taskdef resource="com/salesforce/antlib.xml" classpath="ant-salesforce.jar" />

Run your build again and see if things look better. Having the JAR in the same folder as build.xml will help you eliminate issues with permissions.

like image 175
smooth reggae Avatar answered Jan 08 '23 16:01

smooth reggae