プロファイル
JHipsterには2つのSpringプロファイルが用意されています。
- 開発のための
dev:開発の容易さと生産性に重点を置いています。 - 本番環境用の
prod:パフォーマンスと拡張性に重点を置いています。
これらのプロファイルには、次の2つの異なる設定があります。
- Maven/Gradleプロファイルはビルド時に使用されます。たとえば、
./mvnw -Pprod packageまたは./gradlew -Pprod bootJarはプロダクションアプリケーションをパッケージ化します。 - Springプロファイルは実行時に機能します。一部のSpring Beanは、プロファイルによって動作が異なります。
SpringプロファイルはMaven/Gradleによって設定されるため、2つの方法の間に一貫性があります。つまり、Maven/GradleとSpringで同時にprodプロファイルを持つことになります。
注: SpringプロファイルはJHipsterアプリケーションプロパティの設定に使用されるため、共通アプリケーションプロパティのドキュメントをお読みください。
デフォルトでは、JHipsterはdevプロファイルを使用します
Maven/Gradleを使用せずにアプリケーションを実行する場合は、"Application"クラスを起動します(おそらく、右クリックすることでIDEから直接実行できます)。
Mavenでアプリケーションを実行する場合は、Maven Wrapperを使用して./mvnwを実行するか、独自のMavenインストールを使用してmvnを実行します。
Gradleでアプリケーションを実行する場合は、Gradle Wrapperを使用して./gradlewを実行するか、独自のGradleインストールを使用してgradleを実行します。
Angular 2+とMavenを使用する場合、devプロファイルに対してwebpackコンパイルを有効にしてのクリーンな実行が必要な場合は、以下のようにwebappパラメータを渡すことができます。
./mvnw -Pdev,webapp
注 フロントエンドが変更された場合、Gradleは自動的にdevプロファイルでwebpackコンパイルを実行します(ライブリロードのために、起動時のみnpm startを使用してください)。
本番環境では、JHipsterはprodプロファイルで実行する必要があります
MavenまたはGradleを使用して、本番環境で直接JHipsterを実行できます。
- Mavenでは、
./mvnw -Pprod(またはmvn -Pprod)を実行してください。 - Gradleでは、
./gradlew -Pprod(またはgradle -Pprod)を実行してください。
アプリケーションを実行可能なWARファイルとしてパッケージ化する場合は、MavenまたはGradleにプロファイルを提供する必要があります。以下は例です。
- Mavenでは、
./mvnw -Pprod package(またはmvn -Pprod package)を実行してください。 - Gradleでは、
./gradlew -Pprod bootJar(またはgradle -Pprod bootJar)を実行してください。
WARファイルから本番アプリケーションを実行する場合、デフォルトでは、パッケージング中に使用されたものと同じプロファイルが使用されます。これをオーバーライドする場合は、VM引数の代替を明示的に指定できます。
java -jar jhipster-0.0.1-SNAPSHOT.jar --spring.profiles.active=...
Springプロファイルのスイッチ
JHipsterには、スイッチとして使用される3つの追加プロファイルが用意されています。
api-docsでswaggerを有効にしますno-liquibaseでliquibaseを無効にしますtlsでTLSセキュリティを有効にし、HTTP/2プロトコルを使用します(TLSおよびHTTP/2のドキュメントを参照してください)
これらは、devプロファイルとprodプロファイルの両方と一緒に使用できます。デフォルトでは、api-docsプロファイルはprodでは有効になっておらずdevで有効になることに注意してください。これはapplication.ymlのspring.profiles.group.devプロファイルグループプロパティに設定されています。
api-docs、no-liquibase、tlsは実行時にのみ使用されます。
- IDEで、
spring.profiles.active=dev,no-liquibaseを使用してメインアプリケーションクラスを実行します(devまたはprodプロファイルを明示的に含める必要があることに注意してください)。 - パッケージ化されたアプリケーションの場合
./java -jar jhipster-0.0.1-SNAPSHOT.war --spring.profiles.active=prod,no-liquibaseとなります。
Mavenでは、これらのプロファイルの直接使用もできます。
./mvnw -Pprod,api-docs,no-liquibase
./mvnw -Pdev,no-liquibase
Gradleでは、これらのプロファイルの直接使用もできます。
./gradlew -Pprod -Papi-docs -Pno-liquibase
./gradlew -Pno-liquibase