Tôi có một dự án Ivy chính mà những người khác bao gồm trong dự án của họ thông qua thuộc tính svn:externals
. Dự án chứa bình Ivy, tệp ivysettings.xml mặc định kết nối với dự án của chúng tôi và một vài macro Ant cho phép tôi chuẩn hóa cách chúng tôi tạo các lọ, v.v. (Ví dụ: người dùng sử dụng <jar.macro>
so với <jar>
. <jar.macro>
sử dụng cùng các thông số, nhưng cũng tự động nhúng pom.xml
vào trong bình và thêm thông tin xây dựng Jenkins vào Tệp kê khai).Ivy: <ivy: settings> so với <ivy: configure>
Chúng tôi cũng sử dụng Jenkins làm hệ thống tích hợp liên tục của chúng tôi. Một trong những điều tôi muốn làm là dọn sạch bộ nhớ cache Ivy cho mỗi lần xây dựng, vì vậy chúng tôi không có bất kỳ vấn đề nào về jar do các vấn đề về bộ nhớ cache. Để làm điều này, tôi đã thiết lập tập tin ivysettings.xml
tôi để xác định một bộ nhớ cache riêng biệt cho mỗi Jenkins Executor:
<ivysettings>
<property name="env.EXECUTOR_NUMBER" value="0" override="false"/>
<caches
defaultCacheDir="${ivy.default.ivy.user.dir}/cache-${env.EXECUTOR_NUMBER}"
resolutionCacheDir="${ivy.dir}/../target/ivy.cache"/>
<settings defaultResolver="default"/>
<include file="${ivy.dir}/ivysettings-public.xml"/>
<include url="${ivy.default.settings.dir}/ivysettings-shared.xml"/>
<include url="${ivy.default.settings.dir}/ivysettings-local.xml"/>
<include url="${ivy.default.settings.dir}/ivysettings-main-chain.xml"/>
<include url="${ivy.default.settings.dir}/ivysettings-default-chain.xml"/>
</ivysettings>
tôi ban đầu được sử dụng nhiệm vụ <ivy:settings>
để cấu hình các dự án của chúng tôi với Ivy. Tuy nhiên, tất cả những người thực thi Jenkins đều sử dụng cùng một bộ nhớ cache Ivy gây ra vấn đề. Tôi đã chuyển từ <ivy:settings>
sang <ivy:configure>
và sự cố đã biến mất. Rõ ràng, <ivy:configure>
thiết lập Ivy ngay lập tức (và do đó thiết lập bộ đệm chính xác) trong khi <ivy:settings>
không đặt Ivy cho đến khi <ivy:resolve>
được gọi.
Tôi đã nhìn thấy một số email về Nabble về số <ivy:configure>
không được chấp nhận (hoặc có thể không). Tôi không thấy gì trong tài liệu trực tuyến Ivy nêu rõ <ivy:configure>
không được chấp nhận.
Vì vậy, khi nào bạn sử dụng <ivy:settings>
so với <ivy:configure>
. Trong trường hợp của tôi, vì tôi cần bộ nhớ cache riêng biệt cho mỗi người thi hành Jenkins, tôi cần sử dụng <ivy:configure>
, nhưng có lý do nào tôi có thể sử dụng <ivy:settings>
trên <ivy:configure>
không? Và, có bị <ivy:configure>
phản đối không?
Câu hỏi hay. Tôi chưa bao giờ sử dụng tác vụ "cấu hình". Tôi nghi ngờ các nhiệm vụ cài đặt là hữu ích hơn bởi vì nó sẽ cho phép bạn thực hiện một số nhiệm vụ giải quyết ivy, sử dụng nhiều hơn một tập tin cài đặt ivy. Vì tôi hiếm khi gọi một ivy giải quyết nhiều hơn một lần, nó sẽ xuất hiện không có sự khác biệt chức năng thực sự giữa các nhiệm vụ trong trường hợp của tôi :-) –
Ngoại trừ cả '' và '' có thể mất a _settings ID_, vì vậy cả hai dường như có thể sử dụng nhiều cài đặt và nhiều giải pháp.Nó đề cập rõ ràng điều này trong các tài liệu '', nhưng dường như cả hai nhiệm vụ đều hỗ trợ các tính năng này. Tôi tin rằng '' là một mặc định để sử dụng trong Ivy 2.x, nhưng trong trường hợp của tôi, '' gây ra vấn đề với '' nhưng không phải với ' '. –
Có lẽ câu hỏi này được đăng tốt nhất vào danh sách gửi thư của nhà phát triển. Giống như tôi đã nói tôi hiếm khi thực hiện một giải quyết ivy nhiều hơn một lần trong một xây dựng. Điều đó giải thích tại sao tôi không bao giờ cần chỉ định ID cài đặt. Vâng, đó là một chút câu đố –