إزالة رقم الإصدار من اسم الملف مع Maven
-
19-09-2019 - |
سؤال
لدي مشروع مع 5 وحدات في مافن. في الوقت الحالي، عندما أقوم ب "تثبيت MVN نظيف"، فإنه يولد أذن تحتوي على الجرارين، وحرب واحدة وواحدة ريال سعودي من الوحدات الأخرى.
تحتوي جميع أسماء الملفات على الإصدار، على سبيل المثال، ProjectX-ear-2.0.0.ear، ProjectX-Client-2.0.0.JAR، إلخ.
أحتاج إلى إعادة تسمية أحد الجرار والأذن الأخيرة لحذف الإصدار في اسم الملف. يجب أن تبدو هذه:
projectx-ear.ear
|
+-- projectx-client.jar
|
+-- projectx-misc-2.0.0.jar
|
+-- projectx-sar-2.0.0.sar
|
\-- projectx-web-2.0.0.web
الآن أنا أستخدم الإضافات التالية لبناء: مافن مترجم - البرنامج المساعد وبرنامج Maven-Release
ما هي أفضل طريقة لتحقيق النتائج التي أتوقعها؟
المحلول
في وحدة الأذن الخاصة بك، يمكنك استخدام إما project.build.finalName
عنصر أو يمكنك تكوين Maven-ear-Plugin الذي يدعم أ finalName
المعلمة اختيارية. ولتكوين الاسم الأخير لجرة مجمعة، ستحتاج إلى تحديد jarModule
وللقي bundleFileName
الممتلكات لذلك.
قد يبدو التكوين النهائي شيئا كهذا (سأظل كيفية تعيين اسم الأذن النهائي في تكوين البرنامج المساعد هنا):
<project>
[...]
<dependencies>
<dependency>
<groupId>yourgroupid</groupId>
<artifactId>projectx-client</artifactId>
<version>2.0.0</version><!-- not mandatory if inherited -->
</dependency>
[...]
</dependencies>
[...]
<build>
[...]
<plugins>
[...]
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<version>2.4</version>
<configuration>
<finalName>projectx-ear</finalName>
<modules>
<jarModule>
<groupId>yourgroupid</groupId>
<artifactId>projectx-client</artifactId>
<bundleFileName>anotherName.jar</bundleFileName>
</jarModule>
</modules>
</configuration>
</plugin>
[...]
</project>
نصائح أخرى
يمكنك تحقيق ذلك عن طريق تحديد finalName
الممتلكات في بوم الخاص بك مثل هذا:
<build>
<finalName>${project.artifactId}</finalName>
</build>
نقطة واحدة: جرة واحدة / حرب.
لإنشاء ذلك دون رقم الإصدار في الاسم، في Pom.xml، ما عليك سوى إضافة الرمز:
<build>
<finalName>${project.artifactId}</finalName>
</build>
لذلك، إذا قمت بتجميعها، على سبيل المثال projectx_misc، تحصل projectx_misc.jar. .
ماذا يحدث لي؟ عندما تقوم بتجميع نفس الحزمة من مشروع بوم (في Netbeans)، تحتوي جميع الجرات على الإصدار بالاسم وتتضمن الأذن أرشيفات XXX-Version.Jar.
لذلك، نقطة اثنين: مشكلة الأذن.
في ملف Pom.xml في الأذن، قم بتغيير Maven-ear-Plugin إضافة في التكوين هذه الخاصية:
<fileNameMapping>no-version</fileNameMapping>
هذا هو إعداد البرنامج المساعد الخاص بي على سبيل المثال:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.8</version>
<configuration>
<version>6</version>
<defaultLibBundleDir>lib</defaultLibBundleDir>
<fileNameMapping>no-version</fileNameMapping>
</configuration>
</plugin>
لذلك، الآن عندما أقوم بتجميع جميع المحفوظات من POM Project، تتم إزالة جميع أرقام الإصدار من الجرار.