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