سؤال

أنا أستخدم البرنامج المساعد Maven Assembly لحزم ملف جرة. لكن عندما أركض mvn package, ، تعمل Maven دائمًا على تشغيل [Jar: Jar {execution: Default-Jar}] لإنشاء ملف جرة افتراضي. لذلك سيكون لدي ملفان جاران (واحد تم إنشاؤه بواسطة البرنامج المساعد للتجميع وواحد تم إنشاؤه بواسطة Maven Jar الذي لا أريد إنشاؤه). كيف يمكنني إيقاف التنفيذ: الافتراضي-جار.

في بلدي pom.xml ، أنا أستخدم:<packaging>jar</packaging>. لا أريد تغييره إلى <packaging>pom</packaging>.

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

المحلول

(...) لذلك سيكون لدي ملفان جاران (واحد تم إنشاؤه بواسطة البرنامج المساعد التجريبي وواحد تم إنشاؤه بواسطة Maven Jar الذي لا أريد إنشاؤه).

يبدو أنك تقوم بأشياء معقدة للغاية. ربما Maven ليس الأداة الصحيحة في قضيتك.

كيف يمكنني إيقاف التنفيذ: الافتراضي-جار.

يمكنك تعيين ملف <phase> من التنفيذ المقابل لشيء غير معروف ، مثل none:

  <plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.3.1</version>
    <executions>
      <execution>
        <id>default-jar</id>
        <phase>none</phase>
      </execution>
    </executions>
  </plugin>
  <plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.2</version>
    <configuration>
      <descriptorRefs>
        <descriptorRef>jar-with-dependencies</descriptorRef>
      </descriptorRefs>
    </configuration>
    <executions>
      <execution>
        <id>make-assembly</id>
        <!-- this is used for inheritance merges -->
        <phase>package</phase>
        <!-- append to the packaging phase. -->
        <goals>
          <goal>single</goal>
          <!-- goals == mojos -->
        </goals>
      </execution>
    </executions>
  </plugin>

يبدو أن هذا يعمل طالما أنك تقدم شيء آخر ليتم تثبيته ، مثل التجميع (اختبرت فقط install). ولكن بالطبع ، هذا هو الاختراق.

نصائح أخرى

على الرغم من أنه ليس إجابة مباشرة على السؤال ، إلا أنه يمكنك استبعاد الجرة التي تم إنشاؤها بواسطة جرة مافن استخدام <useProjectArtifact>false</useProjectArtifact>

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