ANT d'erreur: échec de la création de la tâche ou de type antlib:com.salesforce:déployer
J'ai commencé à jouer avec les Force.com Outil de Migration. Je veux l'utiliser à partir d'un fichier ANT. J'ai créé ce:
<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>
J'ai copié le ant-salesforce.jar dans ant.dossier lib. Lorsque j'exécute ce fichier à travers ANT-je obtenir ceci:
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
Il semble que ant-salesforce.jar fichier, il n'est pas trouvé, mais il s'affiche dans la sortie. Des idées?
Plus d'infos:
Vérification des Permissions
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 contenu de la case:
...
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 le contenu du Fichier (comme prévu):
<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>
Merci d'avance.
- Sûr que c'est le droit pot? Je sais question bête, mais on ne sait jamais 🙂
- Pas une question stupide. Mais j'ai vérifié aussi. Merci quand même
Vous devez vous connecter pour publier un commentaire.
Votre syntaxe de la sf:déployer est bon. Correspond à la mienne.
Vérifier votre définition de projet. Vous mettez-vous à l'espace de noms de xmlns:sf à la juste valeur?
Devrait être:
Vous pouvez aussi vérifier les autorisations de ant-salesforce.jar.
Puis vérifiez que le pot n'est pas endommagé
jar-tf ant-salesforce.jar
Résolu: j'ai réinstallé ant et maintenant tout semble fonctionner. Chose bizarre.
Merci pour votre soutien les gars
J'ai eu le même problème, résolu en changeant la permission de l'ant-salesforce.jar lib.
pour ceux que l'obtention de cette question, il vaut la peine de vérifier si elle n'est pas un problème de permissions sur le répertoire lib.