سؤال

أنا جديد في مافن. أريد استخدام التصفية في مشروع Multimodule. يتم تعيين نوع التعبئة والتغليف من بوم الأصل إلى بوم. هيكل المشروع كما يلي:

pom.xml
     |
     |______MODULE1
     |       |
     |       pom.xml
     |       File1_needed_to_be_filtered
     |
    File2_needed_to_be_filtered

يرجى ملاحظة أن الوحدة 1 هي أيضا مشروع متعدد الوسائط. لذا من فضلك قل لي كيف يمكنني تطبيق التصفية إلى file1 و file2. وإذا قمت بتطبيق التصفية على FILE1، فمن أين سيتم تخزين الملف المعالج (نظرا لأن ملف POM الذي لا ينشئ نوع التعبئة والتغليف أي مجلد يدعى الهدف!) الرجاء مساعدتي لأن هذا أمر بالغ الأهمية بالنسبة لي ويتم تناول هذه المشكلة في أي مكان آخر على الإنترنت.

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

المحلول

يمكنك استخدام مافن تجميع البرنامج المساعد - مع تنسيق "Dir" (على الرغم من أنه إذا كان هناك أكثر من ملف واحد من أي وقت مضى، فقد يكون من المنطقي أن تجعله أرشيفا من نوعه). ال شكل واصف يسمح لك بتصفية. هذا يجب أن يعمل مع POM وملف التسلسل الهرمي الذي تصفه أعلاه.

ومع ذلك، أود أن أوصي بوضع هذه في وحدات الأخوة بدلا من الوالد. هذا يبقي المنطق من مجمع POM الخاص بك، و (بمجرد البدء في القيام بذلك)، قد تقرر أنه من الأسهل استخدام التجميع لتوزيعها مع مكوناتك الأخرى، والتي تريدها وحدة نمطية على أي حال.

نصائح أخرى

للحصول على موارد تصفية Maven عند النسخ، قم بتعيين التصفية true للحصول على دليل الموارد في Pom.xml الخاص بك:

<project>
  ...
  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filterineg>
      </resource>
    </resources>
  </build>
</project>

ولكن إذا كنت ترغب في تصفية الموارد، فلا تضعها في مشروع مع عبوة من النوع pom, هذا لا معنى له (للسبب الذي قدمته لنفسك). في الواقع، أنا لا أفهم ما تحاول تحقيقه (لأنك تعرف أن هذا ليس كيف تعمل الأشياء).

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