#spring-boot #gradle #vaadin #executable-jar
#пружинный ботинок #градация #ваадин #исполняемый файл-jar
Вопрос:
У меня есть рабочее приложение, работающее в STS IDE… Я думал, что создать работающий jar будет просто, поскольку это приложение для весенней загрузки, но теперь я уже не уверен. Кажется, нигде нет четкого руководства о том, как создать пакет интерфейса и разрешить его упаковку в runnable jar. Я попробовал плагин Vaadin для Gradle, но не смог заставить его работать… Есть ли где-нибудь рабочий пример?
Спасибо.
Вот суть 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, я запустил его и обнаружил, что интерфейс не работает. Браузер выдает мне эту ошибку…
Комментарии:
1. Пожалуйста, добавьте код, который вы пробовали, и как он не удался (например, ошибки, трассировки стека, журналы, …), Чтобы мы могли его улучшить.
2. Я создал работающие банки (Spring Boot, Vaadin 14) с помощью Maven. Есть несколько вариантов, которые немного сбивают с толку. Такие параметры, как vaadin.productionMode, vaadin.compatibilityMode и original.frontend.resources в application.properties.
3. Пожалуйста, поясните, как вы «создаете и упаковываете интерфейс».
gradle -DproductionMode=true vaadinBuildFrontend jar
?4. Поскольку я использую только Java, мне не нужен был Maven goal vaadin: build-интерфейс. vaadin.com/docs/flow/production /…
Ответ №1:
В конце концов выяснилось, что это связано с устаревшими компонентами (что-то, что я не доволен зависимостями Vaadin). Что-то где-то ломается, но ошибка проявляется в чем-то, казалось бы, совершенно не связанном. В этом случае мне нужно обновить apexcharts.