web-dev-qa-db-ja.com

リソースnet / sf / antcontrib / antlib.xml、netbeansから定義を読み込めませんでした

私はNetbeansに不慣れで、Rubyプログラミングに慣れていない(1年未満)。EclipseとRuby-それは、ますます不満を募らせている。 Macのようなものではありません!-「JRubyの使用」の推奨事項に基づいて、Netbeansを試すことにしました。

たくさんのブログ投稿、特にGeertjanの post に続いて、私はすべてを構成しました(私は思う)が、私はこのエラーを受け取り続けます:

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ファイル、どこにも見つかりません。 Geertjanのブログで聞いたことがありますが、ここでも聞いてみようと思いました。私はさまざまなことを試しましたが、Netbeansが独自のJava and Ant!)を使用していることを理解するのに時間がかかりました。また、$ ANT_HOMEは定義されていませんが、何も試みていないようです。簡単なものが欠けていることはわかっていますが、それが何であるか理解できません。

Netbeans 7.2(ビルド201207171143)でOS X MountainLionを実行しています。 NB Rubyを "〜/ Downloads/Mercurial/NBRuby"にダウンロードしました。

助けてくれてありがとう! :-)

ありがとう@TarjusArjun!

Ant-contrib-1.0b3.jar( ここで見つけました )を見つけたら、次の場所にコピーする必要があります。

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

あなたのインストールが私のようなものである場合、あなたはたくさんの新しいエラーと失敗したビルドを受け取ります-しかしそれは別の問題です。

(リンク編集をありがとう、Jav_Rock。:-)私はそれをすることを完全に忘れました!)

8
Carolyn Ann

おそらくあなたの根本的な問題は、NetBeans IDEがANT_HOMEを選択していないという事実にあります。ANTはこの場所でNETBEANS IDEにバンドルされています:<<NETBEANSHOME>>/Java/ant。この場所にant-contrib-1.0b3.jarを配置して試すことができます。

6
Gaurav

それは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>
1
damien

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およびユーザー固有のディレクトリから独立しています。

0
Gili

長い間試した後でも確実に機能する私の答えを共有したいと思います:それは同じです:あなたが試したファイル(build-iml)を別の場所でコピーし、上記で宣言したものを置き換えます。注:サイズを確認すると、たとえば破損したファイル(私のプロジェクトでは72)と新しいファイルが90kであるなど、大きく異なることがわかります...すぐに試してみてください。絶対に感謝します。

0
radwan