弹簧靴,gradle,angularJS和一个胖罐

问题描述 投票:0回答:1

我的spring-boot项目是这样的:

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

application包含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目录中构建它。 (我正在使用moowork节点和gulp gradle插件)

但是现在我希望将所有应用程序都放在使用bootJar生成的一个胖jar中。

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

application.jar包含web.jar,它包含dist目录中的所有内容。

gradlew:application:bootJar生成一个包含所有内容的jar(库,spring-boot web)但是当我启动它时,它找不到我的index.html

我知道我必须更改addResourceLocations参数,但我需要一些帮助来完成它。我试过(没有成功):

.addResourceLocations("classpath:/web/");
java spring spring-boot gradle gradlew
1个回答
0
投票

好的答案很简单:由于web.jar包含dist内的所有内容,我只需要这样做:

.addResourceLocations("classpath:/");
© www.soinside.com 2019 - 2024. All rights reserved.