You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maven排除指定废弃目录编译的语法问题求助

解决Maven编译排除废弃目录的问题

正确的maven-compiler-plugin排除配置

Maven编译插件的排除路径是相对于源码根目录(比如src/main/java)的,你需要用**匹配任意子目录,具体配置如下:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.11.0</version> <!-- 使用最新稳定版本 -->
            <configuration>
                <excludes>
                    <exclude>com/company/deprecated/**/*.java</exclude>
                    <exclude>com/partner/company/deprecated/**/*.java</exclude>
                </excludes>
            </configuration>
        </plugin>
    </plugins>
</build>

注意:路径用斜杠/分隔,**表示匹配该目录下所有子目录及文件,*.java匹配所有Java源文件。

替代方案:直接在源码配置中排除

如果编译插件的配置不生效,你可以直接在Maven的源码定义中排除这些目录,这种方式优先级更高:

<build>
    <sources>
        <source>
            <directory>src/main/java</directory>
            <excludes>
                <exclude>com/company/deprecated/**</exclude>
                <exclude>com/partner/company/deprecated/**</exclude>
            </excludes>
        </source>
    </sources>
</build>

常见问题排查

  • 确认配置位置:多模块项目中,需在对应模块的POM中配置,父POM仅做插件版本管理时,模块POM需继承并启用配置。
  • 检查路径准确性:包名转路径时要和文件系统的实际路径完全一致,注意大小写。
  • 清理缓存:执行mvn clean后再重新编译,避免旧编译缓存干扰。

内容的提问来源于stack exchange,提问作者jsrc..programmer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 19:05:21