Как активировать профиль в подмодуле maven, используя свойство? - PullRequest
0 голосов
/ 15 ноября 2018

Я использую Maven 3.6.0 и OpenJDK8 в Ubuntu 18.04 (также протестирован с Alpine Linux).

У меня есть pom.xml в корне моего проекта, который включает мои подмодули:

...
  <modules>
    <module>mysubmodule</module>
  </modules>
...

В папке mysubmodule у pom.xml есть профиль, который я хочу активировать на основе свойства, переданного в исполняемый файл mvn:

...
    <profile>
      <id>my-profile</id>
      <activation>
        <property>
          <name>activateMyProfile</name>
        </property>
      </activation>
      ...
    </profile>
...

Затем я выполняю mvn длязапустить сборку, но профиль никогда не активируется:

  • Если я запускаю mvn -DactivateMyProfile release:prepare из корня моего проекта, профиль никогда не активируется и никогда не запускается
  • Если я запускаюmvn release:prepare из корня моего проекта, профиль никогда не запускается.

Я также пробовал обратное:

...
    <profile>
      <id>my-profile</id>
      <activation>
        <property>
          <name>!doNotActivateMyProfile</name>
        </property>
      </activation>
      ...
    </profile>
...
  • Если я запускаю mvn -DdoNotActivateMyProfile release:prepare изв корне моего проекта, профиль все еще выполняется
  • Если я запускаю mvn release:prepare из корня моего проекта, профиль также выполняется

Это выглядит как mvnне может видеть свойства, передаваемые через командную строку.Как правильно активировать профиль в субмодуле с помощью свойства?

1 Ответ

0 голосов
/ 15 ноября 2018

Поскольку я использую плагин Maven Release, параметры должны передаваться с использованием аргумента -Darguments.

Например, вместо использования mvn -DactivateMyProfile release:prepare, правильный вызов: mvn -Darguments=-DactivateMyProfile release:prepare

Если имеется несколько аргументов, используйте mvn -Darguments="-DactivateMyProfile -DsomeOtherArg -DanotherArg=something" release:prepare

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...