سؤال

(تم نشره أيضًا على مستخدمي Maven)

أتساءل عما إذا كان بإمكان أي شخص إلقاء بعض الضوء على ميراث العناصر في pom.xml فيما يتعلق بمعالجة الموارد والمكون الإضافي للحرب.

تحتوي وثائق POM [1] على موارد مدرجة تحت "عناصر في POM التي يتم دمجها". بعض التجارب على POMs المحلية ضد Maven 2.2.1 لا يبدو أنها تظهر هذا السلوك. ما أراه هو أنه ورثته مشاريع الأطفال (في بناء متعدد الوحدات) ، ولكن إذا كان لدى أي من هذه المشاريع كتلة خاصة بها ، فإنه يحل محل الوالد ، وليس مدمجًا. هل هذا صحيح؟

مثال:

parent-pom.xml
|
|-> child-pom.xml

تعمل ما يلي كما أتوقع ، مع عدم تضمين الملفات في Dev في حرب نهائية.

الوالدين pom.xml

<resources>
    <resource>
        <directory>src/main/resources</directory>
        <excludes>
            <exclude>${dev-config.path}</exclude>
        </excludes>
    </resource>
</resources>

child-pom.xml

<resources>
    <resource>
        <directory>src/main/resources</directory>
        <excludes>
            <exclude>${dev-config.path}</exclude>
        </excludes>
    </resource>
    <resource>
        <directory>src/main/rules</directory>
    </resource>
    <resource>
        <directory>src/test/rules</directory>
    </resource>
</resources>

يبدو أن التغيير التالي للطفل (إزالة أي إعلان لـ SRC/Main/Resources) يؤدي إلى عدم النظر في SRC/Main/Resource أثناء موارد العملية ، وليس الوراثة من الوالد كما كنت أتوقع.

child-pom.xml

<resources>
    <resource>
        <directory>src/main/rules</directory>
    </resource>
    <resource>
        <directory>src/test/rules</directory>
    </resource>
</resources>

[1] http://maven.apache.org/guides/introduction/introduction-the-pom.html س

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

المحلول

في الواقع ، هذا ما تقوله الوثائق. لكنني أؤكد أن ميراث Maven يتجاوز الموارد بدلاً من إضافتها. تم التقاط هذا بالفعل في MNG-2751, وبشكل غير مباشر في MNG-2027, ، قد ترغب في الالتصاق.

TBH ، أنا فضولي للغاية لمعرفة ما سيقوله الناس Maven في هذا (أنا شخصياً سعيد بالسلوك الحالي ، لا أريد حقًا أن يكون "بومس" تلوثًا باحتياجات محددة ، مثل الاستثناءات ، في أ التسلسل الهرمي) وتغيير هذا السلوك قد يكسر الكثير من المشاريع.

نصائح أخرى

كما لوحظ في إضافة موارد إضافية إلى بوم Maven, ، يمكن العمل حول هذا باستخدام البناء توصيل في.

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