我有一个使用Spring Boot + Vaadin的Gradle项目。 这样构成的摇篮插件弹簧引导和Vaadin如下:在Vaadin Gradle项目中升级Spring Boot版本时出错
dependencies {
compile 'com.vaadin:vaadin-spring-boot-starter:1.0.0'
compile 'com.vaadin:vaadin-server:${vaadin.version}'
compile 'com.vaadin:vaadin-client:${vaadin.version}'
...
}
此:
vaadin {
version '7.6.8'
widgetset 'com.vaadin.DefaultWidgetSet'
}
Vaadin依赖规定如下:
buildscript {
ext {
springBootVersion = '1.3.7.RELEASE'
}
...
dependencies {
classpath "org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}"
classpath "fi.jasoft.plugin:gradle-vaadin-plugin:0.11.1"
}
}
的Vaadin版本规定如下:工作正常,但只要我将Spring Boot版本更改为
springBootVersion = '1.4.0.RELEASE'
然后我得到的错误:
Illegal character in path at index 89: https://oss.sonatype.org/content/repositories/vaadin-snapshots/com/vaadin/vaadin-server/ ${vaadin.version}/vaadin-server-${vaadin.version}.pom
更新
的Groovy(其中摇篮使用)支持路线插值使用双引号只有在(“),以便改变Vaadin依赖于
dependencies {
compile "com.vaadin:vaadin-spring-boot-starter:1.0.0"
compile "com.vaadin:vaadin-server:${vaadin.version}"
compile "com.vaadin:vaadin-client:${vaadin.version}"
...
}
修复它。现在真正的问题是为什么如果我将Spring Boot降级到1.3.7-RELEASE
,单引号工作正常。
我不是gradle这个专家,但在快速浏览,它看起来像它不是代替'$ {vaadin.version}'的'编译“融为一体。 vaadin:vaadin服务器:$ {vaadin.version}''。你可以尝试用双引号(''')替换[单引号(''']](http://stackoverflow.com/questions/6761498/whats-the-difference-of-strings-within-single-or -double-quotes-in-groovy)?这对我本地的快速测试非常有用,否则你可以共享整个构建文件吗? – Morfic
同时我也想到了这一点:它的确适用双引号,但它也可以用单引号和Spring Boot版本一起工作......不知道这两者是如何相关的。 – herman
嗯,只是一个疯狂的想法,也许deps已经在本地回购,所以它不需要重新下载,直到你切换到更新的启动版本?!奇怪的无论如何... – Morfic