2013-02-12 67 views
2

我已經開始使用Force.com遷移工具。我想從ANT構建文件中使用它。我創建了這個:ANT錯誤:未能創建任務或鍵入antlib:com.salesforce:deploy

<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> 

我已經在ant.lib文件夾中複製了ant-salesforce.jar。當我執行這個文件throught ANT我得到這個:

 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 

看來,螞蟻salesforce.jar文件時,它沒有找到,但它出現在輸出中列出。有任何想法嗎?

更多信息:

權限檢查

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 

罐內容檢查:

... 
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文件的內容(如預期):提前

<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> 

感謝。

+0

確定它是正確的罐子?我知道一個愚蠢的問題,但是從來不知道:-) – 2013-02-12 22:25:46

+0

不是一個愚蠢的問題。但我也仔細檢查了這一點。無論如何謝謝 – r0dx1 2013-02-13 08:32:57

回答

0

解決:我已經重新安裝了螞蟻,現在一切似乎工作確定。奇怪的事情。

感謝您的支持傢伙

1

您的語法sf:deploy很好。匹配我的。

檢查您的項目定義。你是否將xmlns:sf的命名空間設置爲正確的值?

應該是:

<project name="salesforce" default="deploy" basedir="." xmlns:sf="antlib:com.salesforce"> 

你也可以查看螞蟻salesforce.jar的權限。

,然後檢查罐沒有損壞

罐子-tf螞蟻salesforce.jar

+0

感謝您的幫助。我已經檢查過你的命名空間設置,我和你一樣。 jar權限現在是777,但問題仍然存在。 我也檢查過jar內容和antlib文件,但都似乎沒問題。我已經用這些信息更新了問題。 – r0dx1 2013-02-13 08:30:29

0

我通過改變允許螞蟻salesforce.jar lib中得到了同樣的問題,固定它。

對於那些得到這個問題的人來說,值得檢查它是否對lib沒有權限問題。

+0

你能指定你改變了什麼權限嗎?什麼OS? – 2017-02-18 04:48:02

相關問題