从jar运行时未加载Spring配置文件

问题描述

我有一个问题,从Jar运行时未加载@configuration文件。它可以从IDE(IntelliJ IDEA 2020.2)正常工作。我正在使用带有build.gradle文件的Spring Boot 2.3.1:

plugins {
    id 'org.springframework.boot' version '2.3.1.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id 'java'
}

group = 'com.bramgussekloo'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

configurations {
    developmentOnly
    runtimeClasspath {
        extendsFrom developmentOnly
    }
}

repositories {
    mavenCentral()
    maven { url 'https://repo.spring.io/milestone' }
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web','postgresql:postgresql:9.1-901-1.jdbc4',"io.springfox:springfox-boot-starter:3.0.0"
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage',module: 'junit-vintage-engine'
    }
    // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-devtools
    compile group: 'org.springframework.boot',name: 'spring-boot-devtools',version: '2.3.1.RELEASE'

    // https://mvnrepository.com/artifact/com.graphhopper/graphhopper-core
    compile group: 'com.graphhopper',name: 'graphhopper-core',version: '1.0'

//  // https://mvnrepository.com/artifact/io.springfox/springfox-swagger2
//  compile group: 'io.springfox',name: 'springfox-swagger2',version: '3.0.0'
//  compile('io.springfox:springfox-swagger2:3.0.0')


    // https://mvnrepository.com/artifact/io.swagger.core.v3/swagger-annotations
    compile group: 'io.swagger.core.v3',name: 'swagger-annotations',version: '2.1.3'


    // https://mvnrepository.com/artifact/io.swagger.core.v3/swagger-models
    compile group: 'io.swagger.core.v3',name: 'swagger-models',version: '2.1.3'

    compile("org.springframework.boot:spring-boot-starter-web")
    testCompile("org.springframework.boot:spring-boot-starter-test")

    // https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui
    compile group: 'io.springfox',name: 'springfox-swagger-ui',version: '3.0.0'

    // https://mvnrepository.com/artifact/org.springframework.plugin/spring-plugin-core
    compile group: 'org.springframework.plugin',name: 'spring-plugin-core',version: '2.0.0.RELEASE'

    // https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml
    compile group: 'org.apache.poi',name: 'poi-ooxml',version: '4.1.2'

    // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web
    compile group: 'org.springframework.boot',name: 'spring-boot-starter-web',version: '2.3.1.RELEASE'

    // https://mvnrepository.com/artifact/org.springframework.security/spring-security-core
    compile group: 'org.springframework.security',name: 'spring-security-core',version: '5.3.3.RELEASE'

    // https://mvnrepository.com/artifact/org.springframework.security/spring-security-web
    compile group: 'org.springframework.security',name: 'spring-security-web',version: '5.3.3.RELEASE'

    // https://mvnrepository.com/artifact/org.springframework.security/spring-security-config
    compile group: 'org.springframework.security',name: 'spring-security-config',version: '5.3.3.RELEASE'

    // https://mvnrepository.com/artifact/org.springframework/spring-jdbc
    compile group: 'org.springframework',name: 'spring-jdbc',version: '5.2.7.RELEASE'

    // https://mvnrepository.com/artifact/org.apache.tika/tika-core
    compile group: 'org.apache.tika',name: 'tika-core',version: '1.24.1'


}

test {
    useJUnitPlatform()
}

@EnableWebMvc
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.
            addResourceHandler("/swagger-ui/**")
            .addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/")
            .resourceChain(false);
        registry.addResourceHandler("/webjars/**")
            .addResourceLocations("classpath:/META-INF/resources/webjars/");
        System.out.println("works");
        registry.addResourceHandler("/","/**/*")
            .addResourceLocations("classpath:/static/","classpath:/META-INF/resources/","classpath:/META-INF/resources/webjars/")
            .resourceChain(true)
            .addResolver(new PathResourceResolver() {
                @Override
                protected Resource getResource(String resourcePath,Resource location) throws IOException {
                    Resource requestedResource = location.createRelative(resourcePath);

                    if (requestedResource.exists() && requestedResource.isReadable()) {
                        return requestedResource;
                    } else {
                        return new ClassPathResource("/static/index.html");
                    }
                }
            });
    }
}

我尝试在代码中添加一个println,并在ide中将其打印出来,但是在罐子用完时不会打印。 Jar使用命令java -jar [jar name]在JAVA 11.0.7上运行。

我的代码也可以在https://github.com/Bramgus12/HR-Routeplanner

上使用

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...