如何从源代码安装 Grails 插件?

Posted

技术标签:

【中文标题】如何从源代码安装 Grails 插件?【英文标题】:How to install Grails plugin from source code? 【发布时间】:2011-05-25 01:13:44 【问题描述】:

我从朋友那里得到了插件的源代码,但仍然不知道如何将它安装到我的项目中。是的,有 install-plugin 命令,但是这个插件不允许上传到根 grails 插件目录。

如何从源代码安装 grails 插件?

更新:该插件是为 Grails 1.1 开发的,但我当前的项目是 Grails 1.3。会不会有什么问题?

【问题讨论】:

【参考方案1】:

您可以将插件打包成一个 zip,然后从中安装。

在包含插件源的根目录中打开命令提示符并运行grails package-plugin,将 GRAILS_HOME 设置为 1.1 Grails 安装,并在 PATH 中设置 $GRAILS_HOME/bin。这将创建一个 zip 文件,例如grails-myplugin-0.1.zip。要安装它,请在包含的应用程序中运行 grails install-plugin /path/to/grails-myplugin-0.1.zip(使用 1.3)。

在 1.3 应用程序中安装 1.1 插件可能不会有任何问题,但如果出现问题,您可能需要升级,或者利用 Groovy 和 Grails 的最新版本的功能。

我升级插件或应用程序在这样的版本中有很大差距的过程是不运行grails upgrade - 这对于较小的版本增量是最好的,例如从 1.3.1 升级到 1.3.5。

我建议在 1.1 中创建一个新的空插件。手动或使用目录差异工具,通过将当前插件与空插件进行比较,找到插件中所有已删除、添加和修改的文件。然后使用 Grails 1.3.x 创建一个新的空插件。移动新文件,删除已删除的文件,并在已编辑的文件中进行相应的更改。

编辑后的文件大部分都在 grails-app/conf 下,所以你需要小心一点,因为有些东西已经改变了。但总的来说,应用大部分或全部更改应该是安全的。

【讨论】:

【参考方案2】:

Burt 的回答很好,但另一种选择是简单地将所有插件文件复制到项目的子目录中并签入。然后您可以将应用程序指向 BuildConfig.groovy 中的此插件目录:

grails.plugin.location.myplugin = 'myplugindir'

这样,如果您在另一台机器上构建或清理您的 .grails 文件夹,您就不必费心再次安装插件。

这种方法也适用于您想要使用自己的自定义更改(可能用于本地错误修复)派生公共插件的情况。

【讨论】:

如果您的插件包含连字符,则将插件名称用引号括起来。示例:grails.plugin.location.'plugin-name-with-dashes' = "myplugindir"【参考方案3】:

自 Grails 2.3 起,不再可以直接从文件系统安装插件。

这意味着:不能再使用grails install-plugin cmd。

相反,您应该使用 maven,如下所示:

  cd /to/path/root/of/myPlugin/ 
  grails maven-install 

现在去:

   $HOME/.m2/repository/org/grails/plugins/

你会找到一个与你的插件同名的目录:

   $HOME/.m2/repository/org/grails/plugins/myPlugin

IT 表示插件发布为 maven 存储库已成功执行。

因此,转到主应用程序的 BuildConfig 并添加 plugins 闭包:

compile ":myPlugin:0.1"

【讨论】:

以上是关于如何从源代码安装 Grails 插件?的主要内容,如果未能解决你的问题,请参考以下文章

创建和安装 grails 插件 - 在安装期间/安装后,我的插件如何从依赖的插件访问资源?

Grails 检测是不是安装了插件

从 zip 文件安装 grails 插件的正确方法是啥?

您如何安装和使用 grails 测试覆盖率?

Grails 2.2.1 无法识别从 BuildConfig.groovy 安装的“发布”插件

Grails:如何引用位于已安装插件中的资源?