私は「Maven:The Complete Reference」、特にプロファイル内の<properties...
タグの使用を文書化したセクションを参照しています。 <profile...
タグはこちら: こちらをご覧ください
<profile>
<id>development</id>
<activation>
<activeByDefault>true</activeByDefault>
<property>
<name>environment.type</name>
<value>dev</value>
</property>
</activation>
<properties>
<database.driverClassName>com.mysql.jdbc.Driver</database.driverClassName>
<database.url>
jdbc:mysql://localhost:3306/app_dev
</database.url>
<database.user>development_user</database.user>
<database.password>development_password</database.password>
</properties>
</profile>
私がよくわからないのは、mvn install -Denvironment.type=dev
コマンドを実行するとどうなるかです。
.properties
ファイルが作成されますか?これにより、.propertiesファイルが作成されますか?
いいえ、ありません。これにより、Mavenが使用するプロパティが設定されます。これは、mvn install -Denvironment.type=development
mavenは、変数 'database.user'に値 'development_user'を使用します(pomsおよびフィルター処理されたリソースで$ {database.user}として使用できます)。
そうでない場合、アプリが開発でテストされるときに、Tomcatは(たとえば)個々のプロパティをどこでどのように読み取るのでしょうか?
重要なのは、プロファイル(properties.files)に応じてカスタマイズするリソースをフィルター処理(および変更)するようにmavenに指示することです。
したがって、最初にリソースをフィルタリングするためにMavenと言う必要があります。
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
次に、Maven変数を使用するようにプロパティファイルを変更します。たとえば、dbプロパティファイルは次のようになります。
database.driverClassName=${database.driverClassName}
database.url=${database.url}
#...