سؤال

لدي مشروع مع 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، تتم إزالة جميع أرقام الإصدار من الجرار.

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