该install-plugin
脚本在 2.3 中被删除,因为“安装”插件没有多大意义。相反,我们像添加 jar 文件一样添加对插件的依赖,并让 Grails 解析依赖并使其可用于应用程序。所以现在我们在BuildConfig.groovy
.
旧的使用方法install-plugin
过于简单,但是现在有了依赖解析 DSL,BuildConfig.groovy
我们可以指定依赖的范围,指定依赖的排除(例如,如果插件 X 依赖于插件(或 jar)Y 但 Y 只是可选的或者它会导致问题,您可以只安装 X 并排除 Y),并且通常对过程有更多的控制。
但是我们使用插件来发布插件,这让事情有点混乱。该功能最初在 Grails 核心中,但许多不属于核心的功能被作为插件提取出来。这从 Quartz 插件开始,然后是 Hibernate 和 Tomcat,最近是脚手架插件。最初“maven-publisher”插件用于发布插件,但随着更多功能的添加,名称已更改,以确保人们不会混淆它仅适用于 Maven。
因此,要发布插件,我们需要“安装”取代 maven-publisher 插件的http://grails.org/plugin/release插件。您可以install-plugin
在 2.2.x 及更早版本中使用该脚本,但您应该改掉使用的习惯,install-plugin
因为uninstall-plugin
它们在 2.3 中已消失。
Grails 可以使用多个 Maven 兼容的 repos 来解决插件和 jar 依赖项。Maven Central ( mavenCentral()
) 通常拥有我们需要的所有 jar,但有些在其他 repos 中。Grails 插件发布到http://repo.grails.org/ (你可以在http://repo.grails.org/grails/plugins/org/grails/plugins/看到它们)但是同样,你也可以得到来自其他存储库的插件也。当使用 Maven 解决依赖关系时,它被缓存在$HOME/.m2/repository/
(this is mavenLocal()
) 中,因此您只需下载每个版本一次。
来自插件的maven-install
脚本release
构建一个插件 zip 并生成相关的元数据文件,并将所有内容复制到正确的位置,$HOME/.m2/repository/
之后依赖解析器无法知道这些文件是否存在,因为它们是从“真实”存储库下载的,并且缓存在那里,或者通过脚本放在那里。但这没关系 - 如果文件在那里,它们是可用的。因此,一旦您maven-install
在 0.42 版的“foo”插件上运行,您就可以在应用程序的 BuildConfig.groovy 中为其添加依赖项:
plugins {
runtime ':foo:0.42'
...
}
并且它会从本地缓存中解析出来,就像它已经正式发布一样。
发布插件的文档中提供了更多信息:http: //grails-plugins.github.io/grails-release/docs/manual/