【Maven 】 <resources> 配置中排除 fonts/** 目录无效,可能是由于以下原因及解决方案:

如果 Maven 的 配置中排除 fonts/** 目录无效,可能是由于以下原因及解决方案:


总结:用方法一即可

1. 检查资源过滤是否生效

确保 部分正确配置了 resources 插件:

<build>
    <resources>
        <resource>
            <directory>src/main/resourcesdirectory>
            <excludes>
                <exclude>fonts/**exclude>
            excludes>
            
            <filtering>falsefiltering>
        resource>
    resources>
build>

2. 验证目录结构

确认 fonts 文件夹的物理路径是否正确:

src/
└── main/
    └── resources/
        └── fonts/   # 确保这是要排除的目录
            ├── font1.ttf
            └── font2.otf

3. 清理并重新构建

Maven 可能会缓存资源文件,执行以下命令强制刷新:

mvn clean package
# 或
mvn clean install -U

4. 检查其他插件干扰

某些插件(如 spring-boot-maven-plugin)可能会覆盖资源配置。添加显式排除:

<plugin>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-maven-pluginartifactId>
    <configuration>
        <excludes>
            <exclude>
                <groupId>non-existsgroupId>
                <artifactId>non-existsartifactId>
                <classifier>fonts/**classifier>
            exclude>
        excludes>
    configuration>
plugin>

5. 使用绝对路径排除

尝试使用完整路径匹配:

<exclude>**/fonts/**exclude>

6. 调试资源处理

查看 Maven 实际处理的资源文件列表:

mvn resources:resources -X | grep "Copying"

检查输出中是否仍包含 fonts 目录下的文件。


7. 替代方案:手动删除

如果配置仍不生效,可在打包后手动删除:

<plugin>
    <groupId>org.apache.maven.pluginsgroupId>
    <artifactId>maven-antrun-pluginartifactId>
    <executions>
        <execution>
            <phase>packagephase>
            <goals>
                <goal>rungoal>
            goals>
            <configuration>
                <target>
                    <delete dir="${project.build.outputDirectory}/fonts"/>
                target>
            configuration>
        execution>
    executions>
plugin>

验证是否生效

打包后检查生成的 target/classes 或 JAR 文件中是否仍包含 fonts 目录:

jar tf target/your-app.jar | grep fonts/

常见问题原因

  1. 多模块项目中子模块配置被父 POM 覆盖
  2. 其他插件(如 maven-war-plugin)的重复资源处理
  3. IDE 缓存导致(尝试重启 IDE 或手动清理 target 目录)

通过以上步骤应能解决资源排除问题。如果仍不生效,建议提供完整的 pom.xml 和项目结构进一步分析。

你可能感兴趣的:(日常工作总结,maven,java)