2010-09-06 36 views
9

Tôi gặp sự cố khi thiết lập Trình tạo Ant cho các dự án Eclipse của tôi.Thêm thư viện người dùng vào đường dẫn lớp Ant Builder

Tôi có một số thư viện của bên thứ ba được định cấu hình làm thư viện người dùng trong Eclipse. Những thư viện đó được thêm vào đường dẫn xây dựng của các dự án của tôi và mọi thứ đều hoạt động tốt.

Vấn đề của tôi là nếu tôi muốn sử dụng Trình tạo kiến ​​từ Eclipse, tôi sẽ phải thêm một số thư viện người dùng vào đường dẫn lớp của Trình tạo kiến ​​để làm cho nó hoạt động. Tôi cần những Libs bởi vì họ bao gồm một số nhiệm vụ defs và loại defs cho Ant, KHÔNG ĐỂ COMPILE DỰ ÁN CỦA TÔI. Nhưng làm thế nào tôi có thể thêm các thư viện người dùng đó vào đường dẫn lớp Ant Builder? Tôi không muốn "mã hóa" chúng bằng cách thêm chúng theo cách thủ công, bởi vì nếu tôi phải thay đổi một trong những lib đó trong tương lai, tôi cũng sẽ phải duy trì tất cả các Trình xây dựng Ant. Và tôi không biết làm thế nào tải xác định đường dẫn đến thư viện người dùng trong thời gian chạy trong Ant để tải chúng tự động, bởi vì tôi cần những libs tại bootstrap của Ant để có thể xác định Ant Tasks cần thiết của tôi thành công.

Trả lời

10

Trong trường hợp đó, bạn có thể muốn thêm các tệp JAR của mình (chứa các tệp tác vụ) vào thời gian chạy Ant.

Cửa sổ -> Tùy chọn, chọn "Ant -> Thời gian chạy" từ bên trái. Tập trung vào "Mục nhập chung", sau đó sử dụng nút "Thêm JAR" ở bên phải để thêm tệp JAR.

Các tệp JAR bạn thêm sẽ được đóng góp vào bất kỳ quá trình Ant nào đang chạy trong Eclipse.

Câu hỏi tiếp theo của bạn có thể là - "tại sao tôi phải thêm JAR? Tôi không thể thêm thư viện người dùng của mình?". Câu hỏi hay, vui mừng vì bạn (đã sắp sửa hỏi). Ổ đĩa cho tôi bonkers quá và tôi không có ý tưởng tại sao Eclipse không cung cấp chức năng này. Có thể đã đến lúc mở yêu cầu tính năng ...

Chỉnh sửa Tháng 2 năm 2014: chỉ ra rằng việc thêm thư viện người dùng vào đường dẫn lớp của Ant đã được yêu cầu (https://bugs.eclipse.org/bugs/show_bug.cgi?id=211669). Bởi vẻ ngoài của nó, tôi là một trong những người mở cửa trở lại ...

1

Tôi không chắc chắn nếu điều này sẽ giúp bạn, nhưng tôi muốn sử dụng Ivy trong tình huống này. Tôi có một phần mở rộng tùy chỉnh kiến ​​mà tôi bao gồm cách:

build.xml:

<project name="project" basedir="." default="deploy" xmlns:ivy="antlib:org.apache.ivy.ant" xmlns:myNamespace="antlib:org.company.module"> 
    <property file="build.${user.name}.properties" /> 
    <property file="build.${env.COMPUTERNAME}.properties" /> 
    <property file="build.properties" /> 
    <property file="build-base.properties" /> 

    <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" /> 

    <!-- Configuration for external ant libs --> 
    <property name="apache.ant.ext.lib" value="${target.root}/antlib" /> 
    <mkdir dir="${apache.ant.ext.lib}" /> 
    <ivy:retrieve inline="true" pattern="${apache.ant.ext.lib}/[artifact]-[revision]-[type].[ext]" 
     conf="master" organisation="org.company" module="module" revision="1.0" /> 
    <path id="apache.ant.ext.lib.classpath"> 
     <fileset dir="${apache.ant.ext.lib}" includes="*.jar" /> 
    </path> 
    <taskdef classpathref="apache.ant.ext.lib.classpath" resource="path/to/antlib.xml" /> 
... 

sau đó libs của bạn sẽ được lấy ra vào tạm ext ant thư mục lib của bạn cho ant để sử dụng trong thời gian chạy của nó, nhưng sẽ bị loại trừ khỏi dự án của bạn. Eclipse có một plugin cho Ivy (IvyDE) và kỹ thuật này đã làm cho cuộc sống của tôi đơn giản hơn nhiều.

0

Thêm người dùng mới/lọ bên ngoài theo cách thủ công là cồng kềnh - bạn nói đúng.

Tôi đã phát hiện ra rằng cách tốt nhất để tránh phải làm điều này là để thay đổi ANT_HOME của bạn từ Ant kèm với Eclipse để cài đặt Ant độc lập có thể được sử dụng từ bất kỳ IDE, dòng lệnh vv

Đi đến Window > Preferences và ở ngăn bên trái, chọn Ant > Runtime. Chọn nút Ant Home ở bên phải của cửa sổ và chọn thư mục gốc của bản cài đặt Ant độc lập của bạn. Eclipse sẽ rất tử tế để cập nhật Ant Home Entries trong ngăn chính để sử dụng cài đặt này thay thế. Tôi đang sử dụng Eclipse Juno ở đây - hướng dẫn có thể hơi khác so với các phiên bản khác.

Bây giờ bất kỳ lọ nào rơi vào ANT_HOME/lib sẽ có thể truy cập được từ tệp build.xml của bạn mà không phải thêm chúng theo cách thủ công vào đường dẫn lớp.

Tôi muốn cung cấp tín dụng cho Qasim Rasheed để hiển thị cho tôi phương pháp này trong blog của mình tại http://www.qasimrasheed.com/post.cfm/eclipse-configure-ant-home. Nó tốt hơn nhiều so với việc thay thế Ant Home Entries theo cách thủ công (kết quả là vấn đề của bạn phải cập nhật tại màn hình này mỗi lần thêm một lọ mới).

Các vấn đề liên quan