Пример весенней загрузки Vaadin 14 bootJar Gradle

#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, я запустил его и обнаружил, что интерфейс не работает. Браузер выдает мне эту ошибку…

ошибка пакета vaadin в браузере

Комментарии:

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.