ANT error: failed to create task or type antlib:com.salesforce:deploy
Solution 1
Resolved: I've reinstalled ant and now all seems to work OK. Weird thing.
Thanks for your support guys
Solution 2
Your syntax for sf:deploy is good. Matches mine.
Check your project definition. Are you setting the namespace of xmlns:sf to the right value?
Should be:
<project name="salesforce" default="deploy" basedir="." xmlns:sf="antlib:com.salesforce">
You could also check the permissions of ant-salesforce.jar.
And then check that the jar is not corrupted
jar -tf ant-salesforce.jar
Related videos on Youtube
Rodrigo Lanza
Updated on October 27, 2022Comments
-
Rodrigo Lanza over 1 year
I've started to play with the Force.com Migration Tool. I want to use it from an ANT build file. I've created this one:
<project name="Subversion to Org" default="deploy" basedir="." xmlns:sf="antlib:com.salesforce"> <target name="deploy"> <echo message="deploying from metadata" /> <echo message="ANT_HOME=${ant.home}"/> <echo message="BASEDIR=${basedir}"/> <echo message="ANT_CORE_LIB=${ant.core.lib}"/> <echo message="JAVA_VERSION=${ant.java.version}"/> <echo message="ANT_LIBRARY_DIR=${ant.library.dir}"/> <echo message="classpath=${java.class.path}"/> <sf:deploy username="${properties.username}" password="${properties.password}" serverurl="${properties.url}" deployroot="${properties.root}" singlePackage="${properties.singlePackage}" runAllTests="${properties.allTest}" /> </target> </project>
I've copied the ant-salesforce.jar in ant.lib folder. When I execute this file throught ANT I get this:
Buildfile: build.xml deploy: [echo] deploying from metadata [echo] ANT_HOME=/usr/share/ant [echo] BASEDIR=/usr/share/tomcat6/.jenkins/jobs/Salesforce Deploy Test/workspace/deploy script [echo] ANT_CORE_LIB=/usr/share/java/ant-1.7.1.jar [echo] JAVA_VERSION=1.6 [echo] ANT_LIBRARY_DIR=/usr/share/ant/lib [echo] classpath=/usr/share/java/ant.jar:/usr/share/java/ant-launcher.jar:/usr/share/java/jaxp_parser_impl.jar:/usr/share/java/xml-commons-apis.jar:/usr/lib/jvm/java/lib/tools.jar:/usr/share/ant/lib/ant.jar:/usr/share/ant/lib/ant-launcher.jar:/usr/share/ant/lib/ant-salesforce.jar:/usr/share/ant/lib/ant-bootstrap.jar BUILD FAILED /usr/share/tomcat6/.jenkins/jobs/Salesforce Deploy Test/workspace/deploy script/build.xml:16: Problem: failed to create task or type antlib:com.salesforce:deploy Cause: The name is undefined. Action: Check the spelling. Action: Check that any custom tasks/types have been declared. Action: Check that any <presetdef>/<macrodef> declarations have taken place. No types or tasks have been defined in this namespace yet This appears to be an antlib declaration. Action: Check that the implementing library exists in one of: -/usr/share/ant/lib -/root/.ant/lib -a directory added on the command line with the -lib argument Total time: 0 seconds
It seems that ant-salesforce.jar file it isn't found, but it appears listed in the output. Any ideas?
More info:
Permissions check
ls -al /usr/share/ant/lib total 3412 drwxr-xr-x. 2 root root 4096 feb 12 15:36 . drwxr-xr-x. 4 root root 4096 feb 12 09:49 .. lrwxrwxrwx. 1 root root 28 feb 12 09:49 ant-bootstrap.jar -> ../../java/ant-bootstrap.jar lrwxrwxrwx. 1 root root 18 feb 12 09:49 ant.jar -> ../../java/ant.jar lrwxrwxrwx. 1 root root 27 feb 12 09:49 ant-launcher.jar -> ../../java/ant-launcher.jar -rwxrwxrwx. 1 root root 3483648 feb 12 12:58 ant-salesforce.jar
Jar contents check:
... com/salesforce/ant/BulkRetrieveTask.class com/salesforce/ant/CompileAndTest$CodeNameElement.class com/salesforce/ant/CompileAndTest$RunTestsElement.class com/salesforce/ant/CompileAndTest.class com/salesforce/ant/Configuration.class com/salesforce/ant/ConnectionFactory.class com/salesforce/ant/DeployTask$CodeNameElement.class com/salesforce/ant/DeployTask.class com/salesforce/ant/DescribeMetadataTask.class com/salesforce/ant/ListMetadataTask.class com/salesforce/ant/RetrieveTask$PackageManifestParser.class com/salesforce/ant/RetrieveTask.class com/salesforce/ant/SFDCAntTask.class com/salesforce/ant/SFDCMDAPIAntTask.class com/salesforce/ant/SFDCMDAPIAntTaskRunner.class com/salesforce/ant/ZipUtil.class com/salesforce/antlib.xml ...
antlib File contents (as expected):
<antlib> <typedef name="compileAndTest" classname="com.salesforce.ant.CompileAndTest"/> <typedef name="deploy" classname="com.salesforce.ant.DeployTask"/> <typedef name="retrieve" classname="com.salesforce.ant.RetrieveTask"/> <typedef name="bulkRetrieve" classname="com.salesforce.ant.BulkRetrieveTask"/> <typedef name="listMetadata" classname="com.salesforce.ant.ListMetadataTask"/> <typedef name="describeMetadata" classname="com.salesforce.ant.DescribeMetadataTask"/> </antlib>
Thanks in advance.
-
Rodrigo Lanza about 11 yearsThanks for your help. I've checked your the namespace settings and I have the same as you. The jar permissions are now 777 but the problem persists. I've also checked the jar contents and the antlib file but all seems to be ok. I've updated the questions with this information.
-
Ian G about 7 yearsCan you specify what permission you changed and how? What OS?
-
Kivi about 4 yearsWhere should we change the permission and exactly under which path the jar file ant-salesforce.jar is present ?