プロファイル
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