2013-05-04 4 views
4

ВопросAnt не загружает определения задачи Salesforce?

Я пытаюсь использовать Force.com Migration Tool (пользовательский муравей библиотека) на коробке Linux и не могу за жизнь мне понять, как получить муравей, чтобы видеть, что библиотека. Что я делаю не так?

Ошибка Сообщение

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. 

Фоновая

Я установил муравья с помощью yum install ant, а затем я уронил Force.com Migration Tool (муравей-salesforce.jar) в /usr/share/ant/lib. Я могу видеть эту библиотеку, когда я запускаю ant -diagnostics, но ни одна из задач для этой библиотеки (не следует видеть, как развертывать, извлекать и т. Д.). Я загрузил gist с полным выходом от 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) 

После большого количества и прибегая к помощи ручному чтения я попытался следующим без толка (NB: вышеприведенные диагностики без какого-либо из перечисленных ниже изменений). Я знаю, что я пропускаю что-то очевидное :(

  1. Установка $ ANT_HOME export 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 в $ PATH export PATH=$PATH:$ANT_HOME/bin

ответ

6

Как о сохранении ant-salesforce.jar под /home/ec2-user/ant/ucp, а затем изменить taskdef элемент выглядеть следующим образом:

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

Запустите сборку снова и посмотреть, если все выглядит лучше. Наличие JAR в той же папке, что и build.xml, поможет вам устранить проблемы с разрешениями.

+0

Saweet !! Спасибо за совет. Это сработало. Есть ли там какие-либо ссылки, чтобы помочь понять все разрешения, которые находятся в игре, чтобы избежать этого сценария? Я не понимаю, как класс может появиться в пути ant classpath, но никогда не загружает его задачи. –

+0

Причина, по которой эти задачи будут использоваться некоторыми системными процессами для инструмента CI. Который, я уверен, снова вернет эту ситуацию ... :( –

+0

работает 'ant -verbose' может получить вам более глубокое понимание того, что может быть ошибкой. Тем не менее, может быть очень сложно узнать больше о причинах исключений, когда JVM взаимодействует с базовой файловой системой, поскольку JVM может часто скрывать более тонкие детали и давать вам только стек из исключения из 'java.io'. –

4

Основанный на @smooth_reggae's answer смог получить работу, сохраняя ant-salesforce.jar в каталоге ant lib по умолчанию. Похоже, это уже должно произойти, но о-хорошо.

<taskdef resource="com/salesforce/antlib.xml" 
    classPath="${ant.library.dir}/ant-salesforce.jar" 
    uri="antlib:com.salesforce"/> 
+0

Удивительный, это имеет для меня гораздо больше смысла, чем положить его в каталог муравья, спасибо! – Curt

+0

Где находится файл ant.library.dir? и какова его ценность? – flor

+0

@flor много деталей по этому поводу в вопросе :) –

Смежные вопросы