2010-02-05 11 views
8

Tôi có một vài tập tin jar, (một số trong đó phụ thuộc vào nhau), và tôi đang cố gắng để có ivy quản lý chúng cho dự án của tôi.Làm thế nào để tạo ra một sự phụ thuộc Ivy cho các lọ địa phương bên trong dự án/lib của bạn?

Tôi không muốn tạo kho lưu trữ "cục bộ", vì tôi muốn người dùng khác có thể kiểm tra dự án svn của tôi và chạy nó mà không cần thiết lập kho lưu trữ cục bộ/chia sẻ. Vì nhiều lý do, tôi không thể thêm các tệp này vào kho lưu trữ thực mà chúng tôi đang sử dụng.

Dự án phụ thuộc vào các tệp này và tôi đang sử dụng chúng trong SVN. Trong quá khứ, tôi đã có các tệp xml phụ thuộc bình thường của tôi. Những tập tin này sử dụng một tập tin cài đặt xml điểm đến kho lưu trữ từ xa. Trong quá khứ, vào phút cuối, tôi đã kiến ​​sử dụng một tác vụ xây dựng để sao chép các tệp này từ thư mục lib vào thư mục được tạo. Điều này cảm thấy giống như một sự lạm dụng bị hỏng mà bỏ qua các tính năng của giải quyết hệ thống tập tin ivy.

(ivy.xml và build.xml cho 3 dự án thể xây dựng sử dụng ivysettings.xml cùng, trong một thư mục cơ sở.)

tôi cảm thấy như tôi là 90% cách đó, tôi phải chỉ những gì trình phân giải hệ thống tập tin của tôi tại ivysettings.xml để thực hiện quyết định đầu tiên của tôi trong chuỗi kiểm tra giải quyết các tệp jar trong projectdir/lib?

Trả lời

3

Bạn đã xem công việc về ivy buildlist chưa?

Bạn có thể sử dụng quyền này để kiểm soát thứ tự trong đó 3 mô-đun của bạn được tạo. Vì mỗi mô-đun được xây dựng, nó có thể xuất bản lên một kho lưu trữ cục bộ, đảm bảo rằng bình có mặt trong mô-đun tiếp theo trong chuỗi.

build.xml 
    ivysettings.xml 
    --> module1 --> build.xml 
        ivy.xml 
    --> module2 --> build.xml 
        ivy.xml 
    --> module3 --> build.xml 
        ivy.xml 

Bạn có thể chia sẻ tệp cài đặt của mình cho tất cả các dự án. Nó nói rằng các module bạn xây dựng có sẵn tại địa phương, mọi thứ khác là từ các kho lưu trữ mặc định có sẵn cho tất cả người dùng của dự án của bạn (Trong trường hợp này Maven)

<ivysettings> 
     <settings defaultResolver="maven2"/> 
     <resolvers> 
       <ibiblio name="maven2" m2compatible="true"/> 

       <filesystem name="local"> 
        <ivy pattern="${local.rep.dir}/.."/> 
        <artifact pattern="${local.rep.dir}/.."/> 
       </filesystem> 
     </resolvers> 
     <modules> 
       <module organisation="org.me" name="module1" resolver="local"/> 
       <module organisation="org.me" name="module2" resolver="local"/> 
       .. 
     </modules> 
</ivysettings> 

Cuối cùng khi bạn xuất bản bên ngoài bạn có thể sử dụng ivy cài đặt tác vụ sao chép các mô-đun bạn đã xuất bản cục bộ vào vị trí lưu trữ cuối cùng