كيف يقوم Apache Ivy بتحليل المتغيرات في أنماط المنتجات المتوفرة في ملف ivysettings.xml؟
-
22-08-2019 - |
سؤال
إذا كان ملف ivysettings.xml الخاص بي يتضمن:
<url name="com.springsource.repository.bundles.external">
<ivy pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
<artifact pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
</url>
ويتضمن ملف ivy.xml الخاص بي ما يلي:
<dependency org="org.junit"
name="com.springsource.org.junit"
rev="4.4.0" />
منذ أن قمت بتشغيل Ivy، أستطيع أن أقول أن هذا يؤدي إلى: http://repository.springsource.com/ivy/bundles/external/org.junit/com.springsource.org.junit/4.4.0/com.springsource.org.junit-sources-4.4.0.jar
لذلك تذهب القرارات:
[organization] => "org.junit"
[module] => "com.springsource.org.junit"
[revision] => "4.4.0"
[artifact] => "com.springsource.org.junit-sources"
[ext] => "jar"
أرى كيف يحل ivy [المؤسسة] و[الوحدة] و[المراجعة] في نمط URL (duh)، ولكن كيف يحل [artifact] و[ext]؟
ال وثائق على محلل URL يبدو أن هناك نقصا.
المحلول
يقوم Ivy أولاً بحل المشكلة <ivy pattern... />
, ، مع التنظيم والوحدة والمراجعة المقدمة ومع [artifact]
مشفر كـ "لبلاب" و [ext]
تم ترميزه بشكل ثابت كـ "xml".يؤدي هذا إلى عنوان URL، في هذه الحالة:
هذا هو ملف تكوين Ivy لهذه الوحدة.من بين أمور أخرى، يحتوي ملف تكوين Ivy هذا على معلومات حول القطع الأثرية الأخرى، على وجه الخصوص:
<artifact name="com.springsource.org.junit-sources" type="src" ext="jar"/>
<artifact name="license" type="license" ext="txt"/>
ثم يتم استخدام هذين لاستكمال <artifact pattern... />
الجزء - لتنزيل الترخيص وتنزيل ملف الجرة.