【发布时间】:2021-03-14 12:45:08
【问题描述】:
我有一个在 STS IDE 中运行的工作应用程序...我认为构建一个可运行的 jar 会很简单,因为它是一个 Spring Boot 应用程序,但现在我不再确定了。关于如何构建前端包并允许将其打包在可运行的 jar 中,似乎没有任何明确的指南。我尝试了 Gradle 的 Vaadin 插件,但我无法让它工作...... 有没有可行的例子?
谢谢。
这里是 build.gradle 的要点
plugins {
id 'org.springframework.boot' version '2.4.0'
id 'io.spring.dependency-management' version '1.0.10.RELEASE'
id 'java'
id 'com.vaadin' version '0.14.3.7'
}
group = 'dsto.eosil.cc'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
maven {
url 'http://maven.vaadin.com/vaadin-addons'
}
}
ext {
set('vaadinVersion', "14.4.4")
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'com.vaadin:vaadin-spring-boot-starter'
implementation 'org.liquibase:liquibase-core'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
runtimeOnly 'org.postgresql:postgresql'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.restdocs:spring-restdocs-mockmvc'
testImplementation 'org.springframework.security:spring-security-test'
testImplementation 'org.springframework.amqp:spring-rabbit-test'
testImplementation 'com.h2database:h2'
}
dependencyManagement {
imports {
mavenBom "com.vaadin:vaadin-bom:${vaadinVersion}"
}
}
test {
useJUnitPlatform()
}
vaadin {
productionMode=true
pnpmEnable=true
}
defaultTasks("clean", "vaadinBuildFrontend", "bootJar")
当我最终构建了前端并将其打包到 jar 文件中时,我运行它,发现前端已损坏。浏览器给了我这个错误...
【问题讨论】:
-
请添加您尝试过的代码以及失败的原因(例如错误、堆栈跟踪、日志等),以便我们对其进行改进。
-
我用 Maven 构建了可运行的 jars(Spring Boot,Vaadin 14)。有一些选项会让事情变得有点混乱。 application.properties 中的 vaadin.productionMode、vaadin.compatibilityMode 和 original.frontend.resources 等选项。
-
请明确说明您如何“构建和打包前端”。
gradle -DproductionMode=true vaadinBuildFrontend jar? -
由于我只使用Java,我不需要Maven目标vaadin:build-frontend。 vaadin.com/docs/flow/production/…
标签: spring-boot gradle vaadin executable-jar