【问题标题】:errors when database-migration plugin is defined in BuildConfig在 BuildConfig 中定义数据库迁移插件时出错
【发布时间】:2013-01-29 09:36:02
【问题描述】:

我尝试遵循建议的良好做法并将插件放在 BuildConfig.groovy 而不是 application.properties 中,但不适用于数据库迁移。我尝试使用compilebuildruntime 的范围来定义它。当我运行 grails refresh-dependencies 时,我收到以下错误消息:

错误警告:指定的依赖定义运行时(数据库迁移:1.3.2)无效!跳过..

(当然,消息中的范围随指定的范围而异)。我应该使用另一个范围,还是这个插件在某种程度上是特殊的?很遗憾,该消息没有说明哪些范围是有效的 - 这样我就不必问这个问题了:-)

我只想使用IDE中的插件来生成xml文件,所以我想把它从war文件中排除。 'export=false' 是否表示,如果所需范围默认包含它?

我不得不承认,我找不到对各种范围的明确定义,什么范围包括什么。有人可以指点我吗?

我应该补充一点,这是 Grails 2.1.1 和 GGTS 3.1。

【问题讨论】:

  • 您在 BuildConfig 中究竟添加了什么,在哪里?插件依赖项看起来像 runtime(':database-migration:1.3.2')(注意前导冒号),需要放在 plugins 块中,而不是 dependencies 块中。
  • 这是范围的good summary
  • 来自我的 BuildConfig.groovy: plugins { build(":tomcat:$grailsVersion", ":release:2.0.3", ":rest-client-builder:1.0.2") { export = false } runtime "database-migration:1.3.2" } 'build' 条目是在我将项目创建为插件时生成的。
  • @uchamp 感谢您的链接。我会做书签。虽然我无法确定是否存在意味着“将其用于命令,但排除在战争之外”的范围。

标签: grails grails-plugin database-migration buildconfig


【解决方案1】:

我刚刚发现了我的错误。我没有注意到插件名称前有一个冒号。我有:

runtime("database-migration:1.3.2")

我应该写的是:

runtime(":database-migration:1.3.2")

'Duh!' 的组合多么奇怪的语法,每个术语前都需要一个冒号。哦,原来如此。让我想起了黑暗时代的一位客户,当时一群人正在研究一个行为不端的 Cobol 程序,但没有人知道原因。尽管我几乎不认识 Cobol,但我还是偷看了一眼。我突然指出,在“if”语句之后和“else”之前缺少句号。至少一个冒号有两个句号,所以我可能不得不承认我的视力不是原来的样子......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-24
    • 2011-01-07
    • 1970-01-01
    • 2019-04-08
    • 2015-04-02
    • 1970-01-01
    • 2019-05-30
    相关资源
    最近更新 更多