سؤال

لدي بوم Maven الذي يجمع العديد من الوحدات النمطية.

<project [stuff]>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.fuhu.osg</groupId>
  <artifactId>UserManagement</artifactId>
  <packaging>pom</packaging>
  <version>1.0</version>
  <name>UserManagement</name>

  <modules>
   <module>core</module>
   <module>war</module>
   <module>ejbs</module>
   <module>ear</module>
  </modules>
</project>

أرغب في تنفيذ هدف لا ينطبق على الوحدات النمطية ضد POM على المستوى الأعلى. شيء مثل MVN DB-Migrate: إنشاء. كما هو الحال ، يبدو أن هذه المحاولات لتشغيل الأمر المذكور ضد المشروعات الفرعية ، وهو أمر صحيح لكل هدف آخر ، ولكن ليس لهذا الغرض.

هل هناك طريقة لصنع بوم Maven الذي يمثل كلاً من الأهداف ومشروع عادي للآخرين؟

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

المحلول

قد يساعدك في بناء ملفات تعريف Maven. من السهل تكوين وحدة فرعية واحدة ليتم استدعاؤها عند استخدام ملف تعريف معين.

http://maven.apache.org/guides/introduction/introduction-to-profiles.html

...
  <profiles>
    <profile>
      <id>db</id>
      <modules>
        <module>core</module>
      </modules>
    </profile>
    <profile>
      <id>all</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <modules>
        <module>core</module>
        <module>war</module>
        <module>ejbs</module>
        <module>ear</module>
      </modules>
    </profile>
...

ابدأ مهمة DB الخاصة بك مع ملف تعريف DB مع شيء مثل:

$ mvn -Pdb db-migrate:create

من الممكن التنشيط التلقائي للملفات التعريف باستخدام بيئة النظام وما إلى ذلك. للأسف ، لا يمكنني العثور على خاصية Maven لهدف سطر الأوامر ، والتي ستمكن من التنشيط التلقائي لملف تعريف عند تشغيل هذا الهدف المحدد.

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