使用 gradle 在 spring boot jar 中排除 application.properties

Ram*_*d V 2 java gradle spring-boot

我正在尝试从 gradle 为 Springboot 应用程序创建的胖 jar 中排除 application.properties。我可以在 Maven 中做到这一点。Gradle 是项目的首选构建工具。我试图在 'jar' 任务中使用 exclude。它不工作。还有其他建议吗?

plugins {
id 'org.springframework.boot' version '2.2.5.RELEASE'
id 'io.spring.dependency-management' version '1.0.9.RELEASE'
id 'java'}
group = 'com.prasad'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
     mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
}
jar {
     exclude('application.properties')
     //tried this too exclude('src/main/resources/application.properties')
}
Run Code Online (Sandbox Code Playgroud)

Bjø*_*ter 7

排除资源通常是错误的方法。我会简单地将它从src/main/resources. 如果您将其用于测试目的,请将其放入src/test/resources. 如果将它用于本地bootRun任务,则可以使用指向 application.properties 文件的路径配置该特定任务,该文件可以放在其他位置。

但是,如果您真的想排除它,则该模式是正确的。您只是没有将它从bootJar(fat jar)中排除,而只是将其排除在正常范围jar(使用 Spring Boot 插件时默认禁用)。尝试:

bootJar {
     exclude('application.properties')
}
Run Code Online (Sandbox Code Playgroud)