سؤال

حاولت هذه لاستبعاد الدليل الكامل ($ {inrialir}/src/main/webapp/webscripts) من ملف الحرب الخاص بي لكنه فشل. ما المشكله؟

هذا لا يعمل:

<configuration>
   <webResources>
      <resource>
       <directory>${basedir}/src/main/webapp/webscripts</directory>
       <excludes>
        <exclude>**/*.*</exclude>
       </excludes>
      </resource>
   </webResources>
</configuration>

هذا ايضا:

<configuration>
   <webResources>
      <resource>
       <directory>${basedir}/src/main/webapp</directory>
       <excludes>
        <exclude>**/webscripts</exclude>
       </excludes>
      </resource>
   </webResources>
</configuration>

هل يمكن لأي شخص أن يساعد؟

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

المحلول

لن يساعد كل من حللك ، حيث سيضيفان مورد إضافي يتم إلغاء تنشيطه بعد ذلك. يتم نسخ مجلد مصدر WebApp افتراضيًا ، بدون آلية الموارد.

آلية إلغاء تنشيط جزء من ذلك هي من خلال <warSourceExcludes> المعلمة ، مثل هذا:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1</version>
    <configuration>
        <warSourceExcludes>webscripts/**</warSourceExcludes>
    </configuration>
</plugin>

نصائح أخرى

WarsourceExcludes يبدو أنه لم يتم إعادة تسميته للتو التغليف.

WarsourceExcludes: قائمة الفاصلة المنفصلة من الرموز المميزة التي تستبعد عند نسخ محتوى WarsourCedirectory.

التغليف: قائمة الفاصلة المنفصلة من الرموز المميزة لاستبعادها من الحرب قبل التغليف. يمكن استخدام هذا الخيار لتنفيذ حالة استخدام الحرب النحيفة.

هناك فرق كبير: مع التغليف, ، يتم استبعاد الرموز بالكامل من ملف الحرب النهائي. مع WarsourceExcludes, ، يتم تجاهل الرموز المميزة عند نسخ دليل الحرب إلى ملف الحرب. نتيجة لذلك ، إذا كانت الرموز موجودة في WebAppDirectory على سبيل المثال ، لن يتم تجاهلها عند استخدامها WarsourceExcludes ولكن سيكون عند استخدام التغليف.

ومثال بناء الجملة:

<warSourceExcludes>**/${project.artifactId}/**</warSourceExcludes>

في الإصدار 2.1-alpha-1 ، تم تسمية هذا بشكل غير صحيح WarsourceExcludes. المعلمة الصحيحة التغليف

مثال على الاستخدام (يستبعد شبكة الويب/ الإحصائيات/ المجلد من الحرب):

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1.1</version>
    <configuration>
        <warName>searchservice-web</warName>
        <packagingExcludes>WEB-INF/statics/</packagingExcludes>
    </configuration>
</plugin>

Project Structure

inorder لإزالة الملفات المصدر التي استخدمتها التكوين أدناه في Maven

 <plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>3.2.0</version>
    <configuration>
      <packagingExcludes>
        eb-app/app/**,eb-app/node_modules/**,eb-app/public/**,eb-app/server/**,eb-app/tests/**,eb-app/tmp/**,eb-app/vendor/**,eb-app/*
      </packagingExcludes>
    </configuration>
  </plugin>

كان لدي سيناريو حيث اضطررت إلى استبعاد مجلدين يمكن مطابقتهما *scripts وكانوا في مجلد الموارد. كان الالتباس الأول هو ما إذا كان يجب توفير القيمة المستبعدة كما src/main/resources/*scripts أو WEB-INF/classes/*scripts, ، أي بنية التجميع قبل أو ما بعد.

كان من المهم للغاية توفيره /** للحصول على الدليل بأكمله يتم استبعاده من ملف الحرب. في حالتي، *scripts/**.

هنا هو التكوين النهائي الذي نجح:

    <packagingExcludes>WEB-INF/classes/*scripts/**</packagingExcludes>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top