Tôi đang cân nhắc việc chuyển đổi dự án Maven mà tôi quản lý thành Apache-Ant/Ivy. Tôi cần kiểm soát nhiều hơn quá trình xây dựng và tôi rất thất vọng với Maven. Xin vui lòng không có ý kiến về Maven lớn như thế nào. Câu hỏi của tôi là về Ivy.Ant/Ivy để xây dựng dự án
Tôi muốn thiết lập mẫu xây dựng Ant "chuẩn" mà sau này có thể được sử dụng cho các dự án khác có thay đổi tối thiểu.
Tôi sẽ thiết lập kho lưu trữ "doanh nghiệp" trung tâm nơi chúng tôi có thể đặt thư viện của bên thứ ba không có sẵn trong kho lưu trữ Maven công khai (ví dụ: thư viện thương mại, thư viện Sun, thư viện độc quyền, v.v.). Kho lưu trữ doanh nghiệp này sẽ có sẵn trên mạng LAN cục bộ của chúng tôi, nhưng có thể không có sẵn từ bên ngoài văn phòng.
Mỗi nhà phát triển sẽ có một kho lưu trữ riêng tư trong ~/.ivy/repository
. Tôi muốn xây dựng Ant để tự động cập nhật kho lưu trữ riêng này với các phiên bản thư viện đã thay đổi từ kho lưu trữ doanh nghiệp.
Trong ~/.ivy/ant
, tôi định đặt mô-đun "chuẩn" để bao gồm trong các dự án riêng lẻ build.xml
tệp, sử dụng tác vụ include
trong Ant 1.8. Các mô-đun này sẽ cung cấp những mục như Scala
và Clojure
mục tiêu biên dịch với các phiên bản khác nhau cho các phiên bản Scala và Clojure khác nhau (ví dụ: scala-compile-2.9.1.xml
, clojure-compile-1.3.xml
, v.v.) Mô-đun xây dựng sẽ có sẵn trong kho lưu trữ doanh nghiệp và được cập nhật tự động trong kho lưu trữ riêng tư nếu họ thay đổi.
Mỗi dự án sẽ thực hiện theo một Maven cấu trúc tiêu chuẩn thư mục: ${project}/src/main/java
, ${project}/target/classes
vv
Trong quá khứ, tôi đã cố gắng sử dụng Ivy nhưng Ant xây dựng các file đã nhận được rất lớn (> 500 dòng cho mẫu xây dựng và khó quản lý/chỉnh sửa. Tôi hy vọng rằng bằng cách đặt các mục tiêu tiêu chuẩn trong các mô-đun xây dựng của riêng họ trong thư mục ~/.ivy/ant
, tôi có thể tránh được sự phồng lên của mã đó.
Việc này có thể thực hiện được không? Tôi có cách xa cơ sở không? Tài liệu duy nhất tôi có thể tìm thấy trên Ivy là tại trang web Apache (http://ant.apache.org/ivy). Có tài liệu nào khác, bao gồm cả sách không?
Tôi không nghĩ rằng, bạn sẽ cần kho riêng cho các thư viện. Ivy tự quản lý [cache] (https://ant.apache.org/ivy/history/latest-milestone/concept.html#cache) trong ~/.ivy2, nó sẽ cập nhật khi giải quyết các phụ thuộc. – oers