Подтвердить что ты не робот

Использование профилей для управления модулями Maven

У меня есть следующий XML в моем maven POM.xml:

<profiles>
  <profile>
     <id>default</id>
     <activation>
        <activeByDefault>true</activeByDefault>
        <property>
           <name>default</name>
           <value>!disabled</value>
        </property>
     </activation>
     <modules>
        <module>m1</module>
        <module>m2</module>
        <module>m3</module>
     </modules>
  </profile>
  <profile>
     <id>x</id>
     <modules>
        <module>m1</module>
     </modules>
  </profile>
</profiles>

Я пытаюсь добиться этого:

  • Когда я запускаю mvn install, я хочу, чтобы он создавал проекты m1, m2 и m3.

  • Когда я запускаю mvn install -Px, я хочу, чтобы он только построил m1.

Моя текущая проблема заключается в том, что с помощью кода выше, вариант 2 строит все m1, m2 и m3.

4b9b3361

Ответ 1

Найден парни решения, сначала определите профиль "x" и "default", и он отлично работает (безумный Maven!!). Здесь конечный результат:

   <profiles>
      <!-- DO NOT CHANGE THE *ORDER* IN WHICH THESE PROFILES ARE DEFINED! -->
      <profile>
         <id>x</id>
         <modules>
            <module>m1</module>
         </modules>
      </profile>
      <profile>
         <id>default</id>
         <activation>
            <activeByDefault>true</activeByDefault>
         </activation>
         <modules>
            <module>m1</module>
            <module>m2</module>
            <module>m3</module>
         </modules>
      </profile>
   </profiles>

Ответ 2

Вы можете отключить профили maven, у которых runByDefault установлено значение true из командной строки следующим образом:

mvn install -P !default

Примечание. Для этого требуется версия Maven версии 2.0.10.

Ответ 3

Просто добавьте пробел после -P, синтаксис команды

mvn install -P x

И не так, как вы используете

mvn install -Px

Взгляните на Maven - введение в профили