我正在开发一个使用 Liquibase groovy DSL 来管理数据库更改的 Java Web 项目。就本主题而言,它可以是使用*.groovy
文件作为源的任何其他 3rd 方库。该项目是用 gradle 构建的。在我的文件夹下的一个模块(dao-base
)中,src/main/resources
我有 groovy 文件(changelog01.groovy, master_changelog.groovy
等)。这些文件应该由 liquibase jar 在运行时加载。
现在,当我尝试在 IntelliJ 中创建项目时,它会给出以下错误消息:
Groovyc:无法编译 Groovy 文件:没有为模块“dao-base”定义 Groovy 库。
我知道 groovy 插件检测*.groovy
文件,尝试编译它们并且不出所料地失败。这些是 groovy DSL 文件,只能由 3rd 方 liquibase 解析器加载,我不需要 IntelliJ 的 groovy 插件来尝试编译它们。
我设法提出了 2 个部分解决方案: 1. 在 intellij 中禁用 groovy 插件。此解决方案的问题在于 gradle 插件依赖于 groovy 插件,因此在禁用 groovy 插件时会自动禁用。我需要启用 gradle 插件。src/main/resources
2.在项目设置-->模块--> dao-base
(我的模块)-->源选项卡中排除文件夹。这个解决方案的问题是,当我构建项目并部署到 tomcat 时,资源文件夹中的文件丢失了,并且由于运行时需要其中的文件,所以当战争加载时我得到文件未找到异常。
我希望有人可以为这个问题提出更好的解决方案。