Grails插件版本不兼容警告

时间:2019-10-22 13:59:04

标签: grails groovy semantic-versioning

根据Grails official documentation,如果我在插件上定义了以下grailsVersion

def grailsVersion = "3.3.10 > *"

这意味着安装了此插件的grails应用程序至少应为3.3.10。

基于同一官方文档的声明,我承认了这一点:

  

grailsVersion-插件支持的Grails的版本范围。   例如。 “ 1.2> *”(表示1.2或更高)

但是我无法理解以下日志

2019-10-22 15:11:16.834 +0200 WARN  (ain) [ins.DefaultGrailsPluginManager] Plugin [myplugin:0.1.0-rc3] may not be compatible with this application as the application Grails version is less than the plugin requires. Plugin is compatible with Grails version 3.3.10 > * but app is 4.0.0

其他奇怪的是,如果我使用

def grailsVersion = "3.0.0 > *"

然后就没有警告了……与grails文档保持一致。

所以我误会了,或者使用grailsVersion = 3.3.10正在发生奇怪的事情

1 个答案:

答案 0 :(得分:0)

原因是当 i j 0 = 0+0 1 = 0+1 2 = 0+2 3 = 0+3 1 = 1+0 2 = 1+1 3 = 1+2 4 = 1+3 2 = 2+0 3 = 2+1 4 = 2+2 5 = 2+3 ... 以一种非常简单的方式转换grails版本并且在这种情况下失败了– grailsVersion被转换为DefaultGrailsPluginManager3310(剥离。' s)-400 <3310

它也解释了为什么3.0.0可以工作(3.3.0-> 300)。 400> 300

您可以在此处看到逻辑 https://github.com/grails/grails-core/blob/master/grails-core/src/main/groovy/grails/plugins/DefaultGrailsPluginManager.java#L378

这里是版本号的字符串-https://github.com/grails/grails-core/blob/master/grails-core/src/main/groovy/grails/plugins/DefaultGrailsPluginManager.java#L421

我会在grails-core上打开一个包含详细信息的问题,甚至更好地打开PR进行修复。