4

问题

我正在尝试在 linux 机器上使用 Force.com 迁移工具(自定义 ant 库),但我终生无法弄清楚如何让 ant 看到该库。我究竟做错了什么?

错误信息

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.

的背景

我使用安装了 ant yum install ant,然后将 Force.com 迁移工具 (ant-salesforce.jar) 放入/usr/share/ant/lib. 当我运行时,我能够看到这个库ant -diagnostics,但该库没有任何任务(应该看到部署、检索等)。我已经上传了一个带有完整输出的要点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)

经过大量的谷歌搜索和手动阅读后,我尝试了以下操作无济于事(注意:上述诊断没有任何以下更改)。我知道我遗漏了一些明显的东西:(

  1. 设置 $ANT_HOMEexport ANT_HOME=/usr/share/ant
  2. 摆弄权限chmod +x /usr/share/ant/lib/salesforce-jar
  3. 摆弄团体chown root:root /usr/share/ant/lib/salesforce-jar
  4. 使用 -lib 传入类ant -lib /usr/share/ant/lib/salesforce-jar retrieve ...
  5. 使用 -lib 传入 lib 文件夹ant -lib /usr/share/ant/lib retrieve ...
  6. 将 $ANT_HOME 添加到 $PATHexport PATH=$PATH:$ANT_HOME/bin
4

2 回答 2

6

如何保持ant-salesforce.jar在下面/home/ec2-user/ant/ucp,然后将taskdef元素更改为如下所示:

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

再次运行您的构建,看看情况是否更好。将 JAR 放在同一个文件夹build.xml中将帮助您消除权限问题。

于 2013-05-05T00:00:29.460 回答
4

基于@smooth_reggae 的回答能够让事情正常工作,同时将 ant-salesforce.jar 保留在默认的 ant lib 目录中。似乎这应该已经发生了,但是哦,好吧。

<taskdef resource="com/salesforce/antlib.xml"
    classPath="${ant.library.dir}/ant-salesforce.jar"
    uri="antlib:com.salesforce"/>
于 2013-05-05T00:55:18.450 回答