Grails如何处理插件依赖项

我正在创建一个Grails插件作为复杂产品的包装器.该产品与hibernate等其他产品有很多依赖关系.问题是,grails具有一些相同的依赖关系,但具有不同的版本.
例如. Grails – >休眠3.6.7
其他产品 – >休眠3.5.6

Grails如何处理插件依赖项? Grails是否为每个插件创建一个单独的ClassLoader?它是可配置的吗?

提前致谢!

Grails有一个依赖解析机制,可以解决以下依赖关系之间的冲突:

> Grails本身
> Grails应用程序
>应用程序的插件
>插件依赖项

只需确保指定插件所依赖的内容,并让Grails的依赖关系解决方案来处理其余部分. Grails历史上使用Ivy进行依赖性解析,但从Grails 2.3.0开始,认是Maven / Aether,可以选择使用Ivy.

有时,在应用程序中,您需要覆盖依赖项解析所做出的选择,例如:排除传递依赖或强制使用特定的库版本,您可以在BuildConfig.groovy中完成所有这些操作

像往常一样,Grails参考文档提供了非常全面的this topic报道.

更新

除了下面的注释之外,如果将JAR放在应用程序的lib目录中,它将被依赖项解析忽略并直接放在类路径上.所以你通常不应该这样做.而是在BuildConfig.groovy的dependencies部分中指定JAR及其版本.

更新2

指定JAR的语法是

<scope> <group>:<artifact>:<version>

组,工件和版本共同标识要下载的内容(JAR),而范围指定您希望如何使用JAR.查找特定JAR的组,工件和版本的最简单方法search a Maven repository.

Read this了解您可以使用的不同范围.

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...