Liquibase groovy DSL を使用して DB の変更を管理する Java Web プロジェクトに取り組んでいます。このトピックでは、*.groovy
ファイルをソースとして使用する他のサードパーティ ライブラリを使用できます。プロジェクトはgradleでビルドされています。dao-base
フォルダーの下のモジュール ( ) の 1 つに、src/main/resources
groovy ファイル (changelog01.groovy, master_changelog.groovy
など) があります。これらのファイルは、実行時に liquibase jar によってロードする必要があります。
IntelliJ でプロジェクトを作成しようとすると、次のエラー メッセージが表示されます。
Groovyc: Groovy ファイルをコンパイルできません: モジュール 'dao-base' に対して Groovy ライブラリが定義されていません。
Groovy プラグインが*.groovy
ファイルを検出し、それらをコンパイルしようとして、当然のことながら失敗することを理解しました。これらは、サードパーティの liquibase パーサーによってのみロードされるべき groovy DSL ファイルであり、IntelliJ の groovy プラグインを試してコンパイルする必要はありません。
私は 2 つの部分的な解決策を考え出すことができました: 1. intellij で groovy プラグインを無効にします。このソリューションの問題は、gradle プラグインが groovy プラグインに依存しているため、groovy プラグインを無効にすると自動的に無効になることです。gradle プラグインを有効にする必要があります。2.プロジェクト設定のフォルダーを除外src/main/resources
->モジュール-> dao-base
(私のモジュール)->ソースタブ。このソリューションの問題は、プロジェクトをビルドして tomcat にデプロイすると、resources フォルダーのファイルが見つからず、その中のファイルが実行時に必要になるため、war のロード時にファイルが見つからないという例外が発生することです。
誰かがこの問題のより良い解決策を思いつくことを望んでいました.