前置知识:
类路径(Classpath)是指 Java 虚拟机(JVM)用来搜索类和资源文件的路径。在 Java 应用程序中,类路径通常由一组目录和 JAR 文件组成。当 JVM 需要加载一个类时,它会在类路径中查找该类的字节码文件。如果该类在类路径中找不到,就会抛出 ClassNotFoundException 异常。
类路径根目录是指类路径中的根目录,它可以是一个目录或者一个 JAR 文件。在 Maven 构建的 Spring Boot 项目中,类路径根目录通常是 src/main/resources 目录下的 application.properties 或 application.yml 配置文件所在的目录。
如何排除特定配置文件
使用 maven-jar-plugin 插件的 excludes 参数。
例如,如果要排除名为 application-prod.yml 的配置文件,可以在 pom.xml 文件中添加以下配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<excludes>
<exclude>**/application-prod.yml</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
这将在打包过程中排除任何名称为 application-prod.yml 的文件。
也可以在 <exclude> 标签中使用 classpath: 前缀来指定要排除的配置文件的类路径。
<exclude>classpath:application-prod.yml</exclude>
这将排除位于类路径根目录下的 application-prod.yml 文件。
如果要排除位于特定目录下的配置文件,可以使用通配符 **,例如:
<exclude>classpath:config/**/application-prod.yml</exclude>
这将排除位于 config 目录及其子目录下的所有 application-prod.yml 文件。