首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"grails maven-install“vs "grails install-plugin maven-publisher”

"grails maven-install“vs "grails install-plugin maven-publisher”
EN

Stack Overflow用户
提问于 2014-04-02 16:03:35
回答 1查看 1.7K关注 0票数 2

我正在使用Grails 2.3.6,并对这些2SDK命令提出了一些问题。我通常不喜欢写像这样的“多题”,但正如你所看到的,它们在概念上是如此的接近,所以我宁愿把它们都放在这里,也不愿陷入这样的5个小问题中。

  • 具体而言,grails maven-install做了什么?因为它现在已经被废弃了。
  • grails install-plugin是做什么的?
  • grails install-plugin maven-publisher是做什么的?
  • maven-publisher是什么,它是做什么的?
  • 为什么现在grails maven-install的工作是BuildConfig.groovycompilebuild目标的责任?
EN

回答 1

Stack Overflow用户

发布于 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-pluginuninstall-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中为它添加一个依赖项:

代码语言:javascript
复制
plugins {
   runtime ':foo:0.42'
   ...
}

并且它将从本地缓存中解析,就像它已经被正式发布一样。

在发布插件的文档中有更多的信息:http://grails-plugins.github.io/grails-release/docs/manual/

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22817046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档