Maven: كيفية إنشاء التجميع مع القطع الأثرية لقطة بدون اسم ملف الطوابع الزمنية؟

StackOverflow https://stackoverflow.com/questions/2516860

سؤال

لدي مستودع يحتوي على قطعة أثرية لقطة مع الطوابع الزمنية.

أريد إنشاء مجموعة ، تحتوي على التبعيات. هذا يعمل بشكل جيد. لكن أسماء القطع الأثرية تحتوي على الطابع الزمني. لذلك أتساءل عن كيفية إزالة الطابع الزمني من اسم الملف للتجميع فقط.

لقد استخدمت هذا تعتمد:

<outputFileNameMapping>${artifact.artifactId}-${artifact.version}.${artifact.extension}</outputFileNameMapping>

لكن طبقات الإصدار لاحتواء الطابع الزمني بالفعل. فهل هناك أي فرصة للحصول على ملف 1.1.1-snapshot بدلاً من 1.1.1-20100323.071348-182?

أنا أستخدم الإصدار 2.2-BETA-4 من Maven-Assembly-Plugin.

هل كانت مفيدة؟

المحلول

هل يمكنك تجربة ما يلي ل outputFileNameMapping:

${artifactId}-${baseVersion}.${extension}

وفقا لقضايا مثل massembly-67, massembly-91:

استخدام ${baseVersion} للحالات التي تريد الحفاظ عليها تسمية -snapshot ، يحتفظ المكون الإضافي بالقدرة على الاستخدام ${version} لتسمية الطابع الزمني BuildNumber ، وهو أمر مفيد لوصف إصدار المكتبة الدقيق المدرج في التجميع.

تحديث: بعد تعليقات البروتوكول الاختياري ، فإن بناء الجملة الدقيق (لم يكن متأكدًا تمامًا من هذا):

${artifact.artifactId}-${artifact.baseVersion}.${artifact.extension}

نصائح أخرى

واجهت مشكلة مماثلة عند محاولة إنشاء حزمة مع المكون الإضافي للتجميع الذي يحتوي على مجلد برقم الإصدار (أقوم بتغليف WSDLS و XSDs).

الحل البديل الذي وجدته بسيطًا للغاية ، وضعت رقم الإصدار الفعلي في خاصية (على سبيل المثال 1.0) ، مما يجعله متاحًا في ملف bundle.xml للمكون الإضافي للتجميع ، وقم بتعيين إصدار POM على:

<version>${service.version}-SNAPSHOT</version>

وبهذه الطريقة ، لا يتأثر محتوى الحزمة الخاصة بي بعلامة اللقطة ، على وجه الخصوص لم يتم تعديلها عند إجراء الإصدار.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top