2012-09-25 46 views
6

我是Netbeans的新手,并且是Ruby编程的新手(少于一年)。我对Eclipse和Ruby越来越感到沮丧 - 它根本就不像Mac! - 并根据“使用JRuby”中的建议决定尝试使用Netbeans。无法从资源net/sf/antcontrib/antlib.xml加载定义,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和Ant! - 而$ ANT_HOME没有定义,但没有我尝试似乎工作。我知道我错过了一些简单的东西,但无法弄清楚它可能是什么!

我使用Netbeans 7.2(构建201207171143)运行OS X Mountain Lion。我将NB Ruby下载到“〜/ Downloads/mercurial/NB Ruby”。

在此先感谢您的帮助! :-)

谢谢@TarjusArjun!

一旦你找到了蚂蚁的contrib-1.0b3.jar(I found it here),它需要被复制到:

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

如果安装是像我这样的东西,你再拿到一堆新错误和失败的构建 - 但这是一个不同的问题。

(感谢,Jav_Rock,用于链接编辑。:-)我完全忘了这样做!)

+0

类似的问题有关Eclipse和有关纯蚂蚁:HTTP://计算器。com/questions/15304845/getting-an-error-could-load-definitions-from-resource-net-sf-antcontrib-ant/28138306#28138306 –

回答

5

也许你根本问题在于,在事实NetBeans IDE中没有采摘ANT_HOME。 ANT在此位置捆绑在NETBEANS IDE中:<<NETBEANSHOME>>/java/ant。您可以尝试在此位置放置ant-contrib-1.0b3.jar

+0

这似乎是个诀窍,@TejasArjun!谢谢! :-) –

+0

@CarolynAnn很棒。尽管在我的答案小编辑。 – Gaurav

+2

Carolyn,如果它解决了你的问题,也许你应该考虑@TejasArjun回答的话题呢? –

1

这是为我的Ubuntu的工作。 复制和重命名文件蚂蚁的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> 
+0

我的歉意!我完全错过了你的答案,athspk。 :-(我会在一段时间内尝试一下 - 我使用了Netbeans 6.9.1,但我真的很想试试7.2。谢谢,再次 - 对不起! –

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.jar中,并被引用为taskdef的类路径的一部分。此方法独立于ANT_HOME和用户特定的目录。

0

不能在[的taskdef]

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

使用属性然后修改build.xml文件与

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