在Spring Initializr Gradle项目中启用Vaadin流生产模式

时间:2019-06-04 19:06:16

标签: java spring gradle vaadin vaadin-flow

在尝试将com.vaadin:vaadin-spring-boot-starter Gradle项目设置为生产模式时,我感到困惑。

该项目是多模块项目的一部分,其{简化的build.gradle文件如下所示:

buildscript {
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

dependencyManagement {
    imports {
        mavenBom "com.vaadin:vaadin-bom:${vaadinVersion}"
    }
}

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    compile("org.springframework.boot:spring-boot-starter-actuator")
    compile("com.vaadin:vaadin-spring-boot-starter")

    // ... futher more
}

我找到了几个针对该主题的项目和文档,例如:

我的当前状态是我将vaadin.productionMode=true添加到了application.yaml文件中,这导致HTTP GET出现以下错误:

  

在“ ES6”浏览器的Servlet上下文中找不到捆绑清单文件“ frontend://vaadin-flow-bundle-manifest.json”。如果您正在Maven中运行开发模式的servlet容器,例如jetty:run更改为jetty:run-exploded。如果您不编译前端资源,请在构建脚本中包括“ vaadin-maven-plugin”。否则,您可以通过禁用生产模式或设置servlet参数'original.frontend.resources = true'来跳过此错误。

因此,总的来说,我认为我的方法正确。

  • Setting the servlet parameter 'original.frontend.resources=true'消除了该错误,但对我来说似乎是一种解决方法,因此我想避免该错误。
  • Disabling production mode显然不是一种选择:-)

所以我的问题是:如何在我的Gradle构建脚本中包含vaadin-maven-plugin。当我仅使用Flow时,我应该使用flow-maven-plugin吗?


更新1:我想将具有Vaadin依赖性的Spring Initializr Gradle项目设置为生产模式。我不想创建一个新的gradle-vaadin-flow-plugin项目。

1 个答案:

答案 0 :(得分:2)

相当于vaadin-maven-plugin的Gradle为com.devsoap.vaadin-flow1),并且您还需要在vaadin { productionMode = true }2中配置build.gradle

还可以配置gradle属性,使其依赖于构建时间参数,如here所述:在vaadin.productionMode = findProperty('productionMode') ?: false中配置build.gradle,并在{{ 1}},将在构建项目时对其进行预处理。