سؤال

هل من الممكن أن تفعل ؟

البيئة:Multimodule بوم يتكون من 3 وحدات:mm1, mm2 ، مم3.وحدة mm2 وقد mm1 كما التبعية.فمن الممكن لبناء الأم بوم دون أي أخطاء.

السؤال:هل من الممكن لبناء وحدة واحدة mm2 (أي تشغيل مخضرم من mm2 قاعدة الدليل) بدون تثبيت mm1 في مخزن ؟

شكرا

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

المحلول

دون تركيب التلقائي ، ولكن من الممكن أن نبني فقط المختار المشاريع.تحتاج إلى أن يكون متعدد وحدة بناء (أفترض أنك تفعل).في المفاعل وضع كل الأوامر تحتاج إلى تشغيل من جذر المفاعل.

حتى في حالة:

mvn reactor:make -Dmake.folders=mm2

في هذه الحالة يمكنك بناء mm2 وحدة وحدات التي تعتمد عليها (mm1).

روابط مفيدة:

من كتاب الأمثلة بناء المشروع الوحيد تستمر التبعية له نموذج المشروع.الآخرين المشاريع يمسها مع mvn reactor:make -Dmake.folders=sample-persist

النص البديل http://www.sonatype.com/books/maven-book/reference/figs/web/running_aro-dependencies.png

أخرى مفيدة الأمر reactor:make-dependents والتي بناء المشاريع التي تعتمد على X.

نصائح أخرى

ولست متأكدا ما تعنيه بالضبط من قبل "دون تثبيت MM1 إلى مستودع المحلي". هل يعني سابقا لبناء MM2 أو لا؟

في شك، ربما واحدة من خيارات البناء الجديدة التي أعلن عنها في في مخضرم نصائح والخدع متقدم مفاعل خيارات بلوق وظيفة يمكن أن تساعد:

<اقتباس فقرة>   

وبدءا من مخضرم 2.1 الإفراج عنهم،   هناك خط جديد قيادة مخضرم   الخيارات التي تسمح لك للتلاعب   الطريقة التي مخضرم ستبني   مشاريع multimodule. هذه جديدة   الخيارات هي:

-rf, --resume-from
        Resume reactor from specified project
-pl, --projects
        Build specified reactor projects instead of all projects
-am, --also-make
        If project list is specified, also build projects required by the list
-amd, --also-make-dependents
        If project list is specified, also build projects that depend on projects on the list

وأنا أفكر على وجه التحديد إلى خيارات -pl و-am. لبناء مجموعة فرعية من الوحدات، تشغيل التالية من الدليل الجذر

$ mvn --projects mm2 --also-make install

ولكن، لست متأكدا من هذا يجيب عن سؤالك (وهي ليست واضحة تماما بالنسبة لي).

وهذا يتعارض مع مبدأ تبعيات Maven2. ما هي الفائدة من يفعل ذلك بالضبط؟

ومع ذلك، يمكننا أن نتصور لتحديد تبعية MM1 من MM2 ك تبعية system:

<dependency>
    <groupId>...</groupId>
    <artifactId>mm1</artifactId>
    <version>...</version>
    <scope>system</scope>
    <systemPath>../mm1/target/</systemPath>
</dependency>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top