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

如何配置Maven以排除src/test/java目录参与编译流程

解决方案

你之前配置的skipTests参数仅会跳过测试用例执行阶段,不会阻断测试代码的编译流程,这是测试代码仍被编译的核心原因。可以通过以下任意一种方式实现需求:

方案1:使用Maven内置参数(最简适配)

直接在构建命令中添加-Dmaven.test.skip=true参数即可,该参数会同时跳过测试代码的编译与执行,完全匹配你的发布构建场景需求。
如果需要在pom文件中固定该配置,添加如下属性即可:

<properties>
    <maven.test.skip>true</maven.test.skip>
</properties>

如果是多模块项目,将上述配置放到父pom文件中即可全局生效,不需要逐个子模块配置。

方案2:自定义排除指定测试目录(灵活适配)

如果后续有部分测试代码需要保留编译的场景,可以通过配置maven编译插件的排除规则,仅跳过src/test/java目录的编译:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.11.0</version>
            <executions>
                <execution>
                    <id>default-testCompile</id>
                    <phase>test-compile</phase>
                    <goals>
                        <goal>testCompile</goal>
                    </goals>
                    <configuration>
                        <excludes>
                            <exclude>**/src/test/java/**/*.java</exclude>
                        </excludes>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

方案3:直接移除测试源码目录(性能最优)

如果发布构建场景完全不需要任何测试代码参与,可以直接重写项目的测试源码目录配置,将其指向不存在的路径,Maven会直接跳过测试编译整个阶段:

<build>
    <testSourceDirectory>${project.basedir}/src/nonexistent</testSourceDirectory>
</build>

内容的提问来源于stack exchange,提问作者mekondelta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 01:24:06