كيف تقمع استبدال الممتلكات عند إنشاء مشروع من النموذج الأصلي؟

StackOverflow https://stackoverflow.com/questions/1878742

  •  18-09-2019
  •  | 
  •  

سؤال

أحاول إنشاء ArchType لمشروع بسيط، يحتوي هذا المشروع على بعض Certs SSL الذي أود أن يتضمنه كموارد في ArchType، لذلك عندما يتم إنشاء المشروع الذي تم إنشاؤه تلك certs جزءا من المشروع. مشكلتي هي أن Maven تحاول القيام بديل خاصية على تلك Certs عند إنشاء مشروع باستخدام النموذج الأصلي. هل هناك على أي حال لإخبار مافن عدم القيام بديل الممتلكات؟ لقد جربت بالفعل ما يلي:

    <resources>
  <resource>
    <directory>src/main/resources</directory>
    <filtering>true</filtering>
    <includes>
      <include>**/*.xml</include>
    </includes>
  </resource>
  <resource>
    <directory>src/main/resources</directory>
    <filtering>false</filtering>
    <excludes>
      <exclude>**/*.xml</exclude>
    </excludes>
  </resource>

في النموذج الخاص بي pom.xml. أيه أفكار؟

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

المحلول

لست متأكدا من أن مشكلتك هي بالضبط (هل شهادات ملفات XML الخاصة بك؟ النموذج الأصلي - 90. حول هذه المشكلة).

الحل البديل هو تكوين خلق من المشروع Mojo لجعل ملف غير مرهق افتراضيا باستخدام:

-Darchetype.filteredExtentions=ext1,ext2,...

يحدد ملحقات الملفات التي سيتم تصفيتها والقيمة الافتراضية java, xml, txt, vm, groovy, jsp, gsp, vm و properties. وبعد حتى استبعاد xml من هذه القائمة إذا كنت لا تريد xml ليتم تصفيتها.

سيكون هناك خيار آخر هو تحديد البيانات الوصفية المخصصة للنمئ الخاص بك، شيء مثل هذا في src/main/resources/META-INF/maven/archetype-metadata.xml:

<?xml version="1.0" encoding="UTF-8"?>
<archetype-descriptor name="myarchetype">
  <fileSets>
    <fileSet filtered="false" encoding="UTF-8">
      <directory>src/foobar</directory>
      <includes>
        <include>**/*.xml</include>
      </includes>
    </fileSet>
  </fileSets>
</archetype-descriptor>

يرى هذه الصفحة لمزيد من التفاصيل حول البيانات الوصفية النموذجية.

نصائح أخرى

تلقيت مشكلة مماثلة في محاولة لاستخدام $ {enderine} في Archetype-Resources / Pom.XML ولكن تم استبدالها عند تشغيل النموذج الأصلي لإنشاء المشروع وأشار إلى الدليل الخطأ.

الإصلاح بسيط. فقط استخدم $ {basedIDIR} بدلا من ذلك. هذا يهرب من علامة $ ويمنع Maven من استبداله عند تشغيل النموذج الأصلي. ثم سيحتوي ملف Pom.xml الذي تم إنشاؤه على {{aserationid} بدلا من الدليل الذي تم تشغيله النموذج الأصلي.

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