一つのプロジェクトの中でローカル環境、開発環境、商用環境用のjarを切り替えて生成したい場合の設定についてです。
ディレクトリ構成が以下のような状態にあるとしたときに、todoBatch-envプロジェクトを環境ごとに切り替える設定を見てみます。
環境差分プロジェクトの構成
こんな感じなっていて、
src/main/resources配下のファイルがローカル環境用。
config/001_dev配下のファイルが開発環境用。
config/002_production配下のファイルが商用環境用だとします。
todoBatch-env pom.xml
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>itouoti.spring.batch</groupId>
<artifactId>todoBatch-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>todoBatch-env</artifactId>
<build>
<finalName>${buildFinalName}</finalName>
<resources>
<resource>
<directory>${resource.directory}</directory>
</resource>
</resources>
</build>
<profiles>
<profile>
<id>local</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<resource.directory>${basedir}/src/main/resources</resource.directory>
<buildFinalName>${project.artifactId}-${project.version}</buildFinalName>
</properties>
</profile>
<profile>
<id>001_dev</id>
<properties>
<resource.directory>${basedir}/config/001_dev</resource.directory>
<buildFinalName>${project.artifactId}-${project.version}-dev</buildFinalName>
</properties>
</profile>
<profile>
<id>002_production</id>
<properties>
<resource.directory>${basedir}/config/003_production</resource.directory>
<buildFinalName>${project.artifactId}-${project.version}-production</buildFinalName>
</properties>
</profile>
</profiles>
</project>
profilesタグで囲まれた中の設定がステージングの設定になります。
実行
ローカル環境
ローカル環境用のmavenビルドコマンドが以下だったとします。
maven clean package
すると、targetディレクトリにenvのjarが生成されます。
開発環境
開発環境用のプロファイルを指定したい場合は以下のコマンドになります。
mvn -P 001_dev clean package
targetディレクトリにプロファイル名付きのjarが生成されます。
商用環境
コマンドは以下になります。
mvn -P 002_production clean package
targetディレクトリに商用環境用のjarが生成されます。
まとめ
-Pオプションを使うことで、プロファイルを切り替えることができます。
親ディレクトリから本体とenvを一緒にビルドする時にも同じオプションで切り替えることができます。
コメントを書く