Spring Boot 、Gradle、angularJS和一个脂肪罐

roqulrg3  于 2023-03-03  发布在  Spring
关注(0)|答案(1)|浏览(154)

我的春靴计划是这样的:

project
|__ build.gradle
|__ settings.gradle
   |__ application
   |__ library
   |__ web
|__ application
|__ library
|__ web

应用程序包含main类和一个实现WebMvcConfigurer的MvcConfig类:

@Configuration
public class MvcConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers (ResourceHandlerRegistry registry) {
        String workingDirectory = System.getProperty("user.dir");
        
        registry.addResourceHandler("/**")
            .addResourceLocations("file:///" + workingDirectory + "/../web/dist/");
    }
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("forward:/index.html");
    }
}

当我运行:gradlew:application:bootRun =〉时,一切正常。
我的web目录是一个angularJS应用程序,gulp在一个dist repertory中构建了它。(我使用moowork节点和gulp gradle插件)
但是现在我想把我所有的应用程序放在一个用bootJar生成的fat jar中。

java -jar application.jar (will run all the app)

jar包含web.jar,web.jar包含dist库中的所有内容。
bootJar生成一个包含所有内容(库、spring-boot web)的jar,但是当我启动它时,它找不到我的index.html
我知道我必须更改addResourceLocations参数,但我需要一些帮助来完成。我尝试过(没有成功):

.addResourceLocations("classpath:/web/");
k5hmc34c

k5hmc34c1#

答案很简单:由于web.jar包含了dist中的所有内容,我只需要执行以下操作:

.addResourceLocations("classpath:/");

相关问题