我正在使用Grails 2.3.6,并对这些2SDK命令提出了一些问题。我通常不喜欢写像这样的“多题”,但正如你所看到的,它们在概念上是如此的接近,所以我宁愿把它们都放在这里,也不愿陷入这样的5个小问题中。
grails maven-install做了什么?因为它现在已经被废弃了。grails install-plugin是做什么的?grails install-plugin maven-publisher是做什么的?maven-publisher是什么,它是做什么的?grails maven-install的工作是BuildConfig.groovy的compile或build目标的责任?发布于 2014-04-02 17:01:16
install-plugin脚本在2.3中被删除,因为“安装”插件没有多大意义。相反,我们像在jar文件上一样,在插件上添加一个依赖项,并让Grails解析该依赖项并将其提供给应用程序。所以现在我们在BuildConfig.groovy中添加所有的deps。
使用install-plugin的旧方法过于简单,但是现在使用BuildConfig.groovy中的依赖解决方案DSL,我们可以指定依赖关系的范围,指定依赖依赖关系的排除(例如,如果plugin依赖于插件(或jar) Y,但是Y是可选的,或者它只会导致问题,那么您可以只安装X并排除Y),并且通常对这个过程有更多的控制。
但是我们使用一个插件来发布插件,这让事情变得有点混乱。该功能最初是在Grails核心中实现的,但是许多不属于核心的功能正在作为插件被删除。这可以追溯到Quartz插件,然后是Hibernate和Tomcat,最近是脚手架插件。最初," Maven -publisher“插件用于发布插件,但随着更多特性的添加,该插件的名称被更改,以确保人们不会混淆它只适用于Maven。
因此,要发布插件,我们需要“安装”取代maven-publisher插件的http://grails.org/plugin/release插件。您可以在2.2.x和更早版本中使用install-plugin脚本,但是您应该摆脱使用install-plugin和uninstall-plugin的习惯,因为它们在2.3中就已经过时了。
Grails可以使用多个与Maven兼容的repos来解决插件和jar依赖关系。Maven Central (mavenCentral())通常有我们需要的所有jars,但是有些在其他的repos中。Grails插件被发布到http://repo.grails.org/ (您可以在http://repo.grails.org/grails/plugins/org/grails/plugins/上看到它们),但是同样,您也可以从其他repos获得插件。当Maven用于解析依赖时,它被缓存在$HOME/.m2/repository/ (这是mavenLocal())中,所以您只需要下载每个版本一次。
来自maven-install插件的release脚本构建一个插件zip并生成相关的元数据文件,并将所有内容复制到$HOME/.m2/repository/中的正确位置,之后,依赖解析器无法知道文件是否在那里,因为它们是从“真正的”repo下载并缓存的,或者是通过脚本放在那里的。但这并不重要-如果文件在那里,它们是可用的。因此,一旦您在版本为0.42的"foo“插件上运行了maven-install,您就可以在应用程序的BuildConfig.groovy中为它添加一个依赖项:
plugins {
runtime ':foo:0.42'
...
}并且它将从本地缓存中解析,就像它已经被正式发布一样。
在发布插件的文档中有更多的信息:http://grails-plugins.github.io/grails-release/docs/manual/
https://stackoverflow.com/questions/22817046
复制相似问题