2012-09-25 26 views
6

Tôi mới dùng Netbeans và mới (ít hơn một năm) để lập trình Ruby. Tôi đã nhận được ngày càng thất vọng với Eclipse và Ruby - nó không phải ở tất cả các máy Mac! - Và quyết định, dựa trên các khuyến nghị trong "Sử dụng JRuby", để thử Netbeans.Không thể tải các định nghĩa từ tài nguyên net/sf/antcontrib/antlib.xml, netbeans

Tiếp theo một loạt các bài đăng trên blog, đáng chú ý Geertjan của post, tôi đã có tất cả mọi thứ được cấu hình (tôi nghĩ), nhưng tôi cứ bị lỗi này:

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

Phần liên quan (một lần nữa, tôi nghĩ) của build.xml là:

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

binaries.cache points to /Users/carolyn/.hgexternalcache; tệp jar, tôi không thể tìm thấy ở đâu cả. Tôi đã hỏi trên blog của Geertjan, và tôi nghĩ tôi cũng muốn hỏi ở đây. Tôi đã thử nhiều thứ khác nhau - tôi mất một thời gian để tìm ra rằng Netbeans sử dụng Java và Ant của riêng nó! - và $ ANT_HOME không được xác định, nhưng không có gì tôi cố gắng làm việc. Tôi biết tôi đang thiếu một cái gì đó đơn giản, nhưng không thể tìm ra những gì nó có thể được!

Tôi đang chạy OS X Mountain Lion, với Netbeans 7.2 (xây dựng 201207171143). Tôi đã tải NB Ruby về "~/Downloads/mercurial/NB Ruby".

Cảm ơn bạn đã giúp đỡ! :-)

Cảm ơn @TarjusArjun!

Khi bạn đã tìm thấy ant-contrib-1.0b3.jar (I found it here), nó cần phải được sao chép vào:

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

Nếu bạn cài đặt bất cứ điều gì như tôi, sau đó bạn nhận được một loạt các mới lỗi và xây dựng không thành công - nhưng đó là một vấn đề khác.

(Cảm ơn, Jav_Rock, cho liên kết chỉnh sửa. :-) Tôi hoàn toàn quên mất làm điều đó!)

+0

Một câu hỏi tương tự về nhật thực và khoảng ant tinh khiết: http: // stackoverflow.com/questions/15304845/get-an-lỗi-có thể-không-tải-định nghĩa-từ-tài nguyên-net-sf-antcontrib-kiến/28138306 # 28138306 –

Trả lời

5

Có lẽ vấn đề gốc của bạn nằm trong thực tế là NetBeans IDE phải là không chọn ANT_HOME. ANT đi kèm trong NETBEANS IDE tại địa điểm này: <<NETBEANSHOME>>/java/ant. Bạn có thể thử bằng cách đặt ant-contrib-1.0b3.jar tại vị trí này.

+0

Điều đó dường như làm các trick, @ TejasArjun! Cảm ơn! :-) –

+0

@CarolynAnn Thật tuyệt. Chỉnh sửa nhỏ trong câu trả lời của tôi mặc dù. – Gaurav

+2

Carolyn, nếu nó giải quyết được vấn đề của bạn, có lẽ bạn nên xem xét chủ đề được trả lời bởi @TejasArjun sau đó? –

1

Nó làm việc cho tôi với ubuntu. Sao chép và đổi tên tập tin ant-contrib-1.0b3.jar vào đường dẫn cụ thể

<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

Lời xin lỗi của tôi! Tôi hoàn toàn bị mất câu trả lời của bạn, athspk. :-(Tôi sẽ thử một lần nữa - tôi đã sử dụng Netbeans 6.9.1, nhưng tôi thực sự muốn thử 7.2. Cảm ơn, và một lần nữa - xin lỗi! –

0

Các tài liệu Netbeans khuyến nghị đặt antlib trong một đường dẫn tương đối cho dự án:

<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> 

Ở phía trên ví dụ, antlib được đặt trong mytask.jar và được tham chiếu như là một phần của classpath của taskdef. Cách tiếp cận này độc lập với ANT_HOME và các thư mục dành riêng cho người dùng.

0

Bạn không thể sử dụng tài sản trong [taskdef]

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

Sau đó sửa đổi build.xml với

<pathelement location="/usr/local/lib/ant-contrib-1.0b3.jar"/> 
Các vấn đề liên quan