Не удалось загрузить определения из ресурса net/sf/antcontrib/antlib.xml, netbeans

Я новичок в Netbeans и новичок (менее года) в программировании на Ruby. Меня все больше разочаровывали Eclipse и Ruby — это совсем не похоже на Mac! - и решил, основываясь на рекомендации в "Использовании JRuby", попробовать Netbeans.

После множества сообщений в блогах, в частности, сообщения Герджана, я все настроил (я думаю), но я продолжайте получать эту ошибку:

Could not load definitions from resource net/sf/antcontrib/antlib.xml. It could not be found.

Соответствующая часть (опять же, я думаю) build.xml:

<taskdef resource="net/sf/antcontrib/antlib.xml">
    <classpath>
        <pathelement location="${binaries.cache}/943CD5C8802B2A3A64A010EFB86EC19BAC142E40-ant-contrib-1.0b3.jar"/>
    </classpath>
</taskdef>

binaries.cache указывает на /Users/carolyn/.hgexternalcache; файл jar я просто нигде не могу найти. Я спрашивал в блоге Герджана, и я подумал, что спрошу и здесь. Я пробовал разные вещи - мне потребовалось некоторое время, чтобы понять, что Netbeans использует свою собственную Java и Ant! - и $ANT_HOME не определено, но ничего из того, что я пытаюсь сделать, не работает. Я знаю, что упускаю что-то простое, но не могу понять, что это может быть!

Я использую OS X Mountain Lion с Netbeans 7.2 (сборка 201207171143). Я загрузил NB Ruby в "~/Downloads/mercurial/NB Ruby".

Заранее благодарю за любую помощь! :-)

Спасибо @TarjusArjun!

Как только вы нашли файл ant-contrib-1.0b3.jar (Я нашел это здесь), его нужно скопировать в:

/Applications/NetBeans/NetBeans 7.2.app/Contents/Resources/NetBeans/java/ant/lib

Если ваша установка похожа на мою, вы получите кучу новых ошибок и неудачную сборку, но это другая проблема.

(Спасибо, Jav_Rock, за редактирование ссылки. :-) Я совершенно забыл об этом!)


person Carolyn Ann    schedule 25.09.2012    source источник
comment
Аналогичный вопрос о затмении и о чистом муравье: stackoverflow.com/questions/15304845/   -  person Eugene Gr. Philippov    schedule 25.01.2015


Ответы (5)


Возможно, ваша основная проблема заключается в том, что среда IDE NetBeans не выбирает ANT_HOME. ANT входит в состав NETBEANS IDE по этому адресу: <<NETBEANSHOME>>/java/ant. Вы можете попробовать, поместив ant-contrib-1.0b3.jar в это место.

person Gaurav    schedule 26.09.2012
comment
Кэролайн, если это решило вашу проблему, может быть, тогда вам следует рассмотреть тему, на которую ответил @TejasArjun? - person Ain Tohvri; 02.04.2013

У меня работает с ubuntu. Скопируйте и переименуйте файл ant-contrib-1.0b3.jar по указанному пути

<target name="downloadbinaries" description="Download external binaries not stored in Mercurial sources." depends="-taskdefs">
    <property file="${user.home}/.nbbuild.properties"/> <!-- permit binaries.cache to be overridden -->
    <property name="binaries.cache" location="${user.home}/.hgexternalcache"/>
    <property name="binaries.server" value="http://hg.netbeans.org/binaries/"/>
    <downloadbinaries cache="${binaries.cache}" server="${binaries.server}">
        <manifest dir=".">
            <include name="*/external/binaries-list"/>
        </manifest>
    </downloadbinaries>

    <taskdef resource="net/sf/antcontrib/antlib.xml">
        <classpath>
            <pathelement location="${binaries.cache}/**943CD5C8802B2A3A64A010EFB86EC19BAC142E40-ant-contrib-1.0b3.jar**"/>
        </classpath>
    </taskdef>
</target>
person damien    schedule 04.10.2012
comment
Мои извинения! Я полностью пропустил твой ответ, athspk. :-( Я попробую через некоторое время - я прибегнул к Netbeans 6.9.1, но я бы очень хотел попробовать 7.2. Спасибо, и еще раз - извините! - person Carolyn Ann; 09.11.2012

Документация Netbeans рекомендует размещать antlib по пути относительно проекта:

<project name="test" default="all" basedir=".">
    <target name="init">
        <javac srcdir="tasksource" destdir="build/taskclasses"/>
        <jar jarfile="mytasks.jar">
            <fileset dir="build/taskclasses"/>
        </jar>
        <taskdef name="customtask" classname="com.mycom.MyCustomTask">
            <classpath>
                 <pathelement location="mytasks.jar"/>
            </classpath>
        </taskdef>
    </target> 
</project>

В приведенном выше примере antlib помещается в mytask.jar и упоминается как часть пути к классам taskdef. Этот подход не зависит от ANT_HOME и пользовательских каталогов.

person Gili    schedule 17.03.2013

я хотел бы поделиться своим ответом, который, безусловно, работает после стольких попыток: это так же: скопируйте файл (build-iml), где вы пытались и работали, где-то еще, и замените тот, который был указан выше. одно примечание: если вы проверите размер, вы обнаружите большие различия, например, поврежденный файл (в моих проектах было 72 ), а новый - 90 КБ ... просто попробуйте в ближайшее время, и вы будете абсолютно благодарны мне.

person radwan    schedule 13.02.2019

Вы не можете использовать свойство в [taskdef]

sudo cp ant-contrib-1.0b3.jar /usr/local/lib/.

Затем измените build.xml с помощью

<pathelement location="/usr/local/lib/ant-contrib-1.0b3.jar"/>
person torui    schedule 13.03.2015