8

我是 Netbeans 的新手,对 Ruby 编程也很陌生(不到一年)。我对 Eclipse 和 Ruby 越来越感到沮丧——它一点也不像 Mac!- 并根据“使用 JRuby”中的建议决定尝试 Netbeans。

在一堆博客文章之后,特别是 Geertjan 的文章,我已经配置了所有东西(我认为),但我一直收到这个错误:

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 和 Ant!- 并且 $ANT_HOME 未定义,但我尝试的任何方法似乎都不起作用。我知道我错过了一些简单的东西,但无法弄清楚它可能是什么!

我正在使用 Netbeans 7.2(内部版本 201207171143)运行 OS X Mountain Lion。我将 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 的链接编辑。:-) 我完全忘记了这样做!)

4

5 回答 5

6

也许您的根本问题在于 NetBeans IDE 没有选择 ANT_HOME。ANT 在此位置捆绑在 NETBEANS IDE 中:<<NETBEANSHOME>>/java/ant. 您可以尝试将其放置ant-contrib-1.0b3.jar在此位置。

于 2012-09-26T09:37:33.383 回答
1

它在 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>
于 2012-10-04T23:21:03.243 回答
0

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.jartaskdef 的类路径中并被引用。这种方法独立于ANT_HOME用户特定的目录。

于 2013-03-17T03:15:43.563 回答
0

我想分享我的答案,在尝试了这么久之后肯定有效:就是这样:复制您在其他地方尝试和工作的文件(build-iml)并替换上面声明的文件。注意:如果您检查大小,您会发现有很大不同,例如损坏的文件(在我的项目中是 72 ),而新的文件是 90k ......请尽快尝试,您绝对会感谢我的。

于 2019-02-13T21:09:12.793 回答
-1

您不能在 [taskdef] 中使用属性

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

然后修改 build.xml

<pathelement location="/usr/local/lib/ant-contrib-1.0b3.jar"/>
于 2015-03-13T04:21:08.787 回答