Maven3/設定値を使い分ける(プロファイルを切り替える)

Maven3/設定値を使い分ける(プロファイルを切り替える)

環境が違ったりとか、状況が違ったりとかでmavenの設定値を部分的に書き換えたい場合がある。 そのような場合にプロファイルというものを使うとその設定地を状況に応じて書き換えることができる。

pom.xmlに

<project>
  ...
  <profiles>
    <profile>
      <id>dev</id>
      <properties>
        <maven.hoge.piyo.fuga>aaa</maven.hoge.piyo.fuga>
      </properties>
    </profile>
    <profile>
      <id>prod</id>
      <properties>
        <maven.hoge.piyo.fuga>bbb</maven.hoge.piyo.fuga>
      </properties>
    </profile>
  </profiles>
  ...
</project>

このように記述しmvnコマンド起動時に

$ mvn -P dev package

のように実行したいprofileのidを指定してやるとそっち側の設定が使われる

デフォルトのプロファイルを指定する

<project>
  ...
  <profiles>
    <profile>
      <id>dev</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <maven.hoge.piyo.fuga>aaa</maven.hoge.piyo.fuga>
      </properties>
    </profile>
    <profile>
      <id>prod</id>
      <properties>
        <maven.hoge.piyo.fuga>bbb</maven.hoge.piyo.fuga>
      </properties>
    </profile>
  </profiles>
  ...
</project>

このようにactiveByDefaultをtrueに設定するとコマンドラインとかでプロファイルを明示的に指定されなかったら、今ならdev側のプロファイルが使われる

当然明示的にprod側を指定したならばdev側は使われず、prod側が使われる

java/apache_maven/maven3/switch_setting_value.txt · 最終更新: 2019-06-14 18:46 by ore