当包含 Gradle Vaadin 插件时,使用 Spring Boot“bootRun

我的目标是建立一个简单的多模块项目,它使用 Spring Boot 2、Gradle 4.x 和 Vaadin 8.x 作为 UI。Vaadin 目前仅用于其中一个子项目,其他子项目提供服务或只是库。


我从这个非常好的 Spring 教程开始,它(尽管使用了较旧的 Gradle 语法)生成了一个工作测试项目。它包含一个“libaray”子项目和一个“应用程序”子项目,具体取决于前者。“bootRun”和“bootJar”Gradle 任务都像魅力一样工作,并且在我将一些配置集中在父 build.grade 中后仍然有效。


然后我将Vaadin Gradle Plugin添加到“应用程序”项目并更改端点以显示一个简单的 vaadin 标签。


问题是,现在使用“bootRun”时,启动的应用程序不再能够访问它所依赖的“库”中的类。如果我删除代码中的任何依赖项,应用程序就可以工作,但是一旦我从“库”(例如“MyService”)中引用了一个类,它就会因“java.lang.ClassNotFoundException”而崩溃。


但是,当使用“bootJar”部署相同的应用程序并运行 jar 时,一切正常,因此可以解决模块间依赖关系。


现在我想知道我是否缺乏理解并且 Vaadin Gradle 插件需要额外/不同的模块依赖配置?或者这可能是 Vaadin Gradle 插件中的错误还是我的配置中的问题?


我在没有得到任何线索的情况下阅读了这个插件的完整文档,已经在网上搜索过,但我既没有在这个特定的上下文中找到“NoClassDefFoundError”,也没有找到一个同时包含 Spring Boot 和 Vaadin 的工作多模块项目示例8.


这是相关的示例代码(不包括导入):


hello.app.DemoApplication


@SpringBootApplication(scanBasePackages = "hello")

@RestController

public class DemoApplication {

    //Service defined in dependent sub-project

    private final MyService myService;


    public DemoApplication(MyService myService) {

        this.myService = myService;

    }


    public static void main(String[] args) {

        SpringApplication.run(DemoApplication.class, args);

    }

}

hello.app.StartUI


/** Entry point for the Vaadin 8 UI */

@SpringUI

@SpringView

public class StartUI extends UI implements View {


    @Override

    protected void init(final VaadinRequest request) {

        setContent(new Label("Hello vaadin"));

    }

}

库gradle.properties


plugins { id "io.spring.dependency-management" version "1.0.5.RELEASE" }

ext { springBootVersion = '2.0.3.RELEASE' }

jar {

    baseName = 'library'

    version = '0.0.1-SNAPSHOT'

}

dependencies {

    implementation('org.springframework.boot:spring-boot-starter')

    testImplementation('org.springframework.boot:spring-boot-starter-test')

}

dependencyManagement {

    imports { mavenBom("org.springframework.boot:spring-boot-dependencies:${springBootVersion}") }

}


DIEA
浏览 161回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java