【问题标题】:error when upgrading Spring Boot version in Vaadin Gradle project在 Vaadin Gradle 项目中升级 Spring Boot 版本时出错
【发布时间】:2016-08-02 11:59:39
【问题描述】:

我有一个使用 Spring Boot + Vaadin 的 Gradle 项目。 Spring Boot 和 Vaadin 的 Gradle 插件配置如下:

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 版本指定如下:

vaadin {
    version '7.6.8'
    widgetset 'com.vaadin.DefaultWidgetSet'
}

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 版本更改为

       springBootVersion = '1.4.0.RELEASE'

然后我得到错误:

路径中索引 89 处的非法字符: https://oss.sonatype.org/content/repositories/vaadin-snapshots/com/vaadin/vaadin-server/${vaadin.version}/vaadin-server-${vaadin.version}.pom

更新

Groovy(Gradle 使用)仅在使用双引号 (") 时才支持字符串插值,因此将 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 专家,但乍一看,它似乎没有替换 compile 'com.vaadin:vaadin-server:${vaadin.version}' 中的 ${vaadin.version}。您可以尝试替换single quote (') with double quotes (") 吗?通过快速测试,这在本地对我有用。否则你能分享整个构建文件吗?
  • 同时我也发现了这一点:它确实适用于双引号。但它也适用于较旧的 Spring Boot 版本的单引号......不知道这两者是如何相关的。
  • 嗯只是一个疯狂的想法,也许这些部门已经在本地存储库中,所以在您切换到更新的引导版本之前不需要重新下载它们?!好奇怪……
  • 本地仓库是指 Gradle 缓存吗?我不认为这是问题所在:我最近才升级到较新的 Vaadin 版本,所以当时它必须下载较新的版本并且一切正常。此外,更改 Spring Boot 版本不会更改 Vaadin 版本。
  • 就像我说的,我不是 gradle 专家,所以我对术语和功能很熟悉,但我认为它可能有一个本地 repo/缓存,它可以像 maven 那样下载工件。你能分享整个构建文件或类似的sscce 来重现这个吗?我之所以问,是因为无论我使用什么版本,在本地我都会遇到相同的错误,而且我对这种行为非常好奇。

标签: gradle spring-boot vaadin spring-boot-gradle-plugin


【解决方案1】:

如果您使用的是最新的 Spring Boot 版本,您应该升级您的 Gradle Vaadin 插件。该插件的最新版本对 Spring Boot 有更好的支持。

这是一个让您入门的指南https://github.com/johndevs/gradle-vaadin-plugin/wiki/Creating-a-Spring-Boot-Project

【讨论】:

    猜你喜欢
    • 2021-06-16
    • 2021-01-20
    • 1970-01-01
    • 2021-01-18
    • 2021-01-22
    • 1970-01-01
    • 2020-07-31
    • 2019-05-19
    • 1970-01-01
    相关资源
    最近更新 更多