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

Maven Cucumber测试项目无main目录,如何消除空JAR警告?

解决纯测试Maven项目的空JAR警告问题

这个警告是因为Maven默认的maven-jar-plugin会在构建过程中尝试打包src/main/java下的主代码,但你的项目只有测试代码、没有主代码目录,所以插件抛出了空JAR的警告。以下是几种直接有效的解决方法:

方法1:跳过主JAR的打包步骤

在pom.xml中添加maven-jar-plugin的配置,直接跳过默认的主JAR打包执行,这是最直接的方案:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.3.0</version> <!-- 可替换为最新稳定版本 -->
            <executions>
                <execution>
                    <id>default-jar</id>
                    <phase>none</phase> <!-- 取消默认的jar打包阶段 -->
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

方法2:设置项目打包类型为pom

如果你的项目完全不需要生成任何JAR/WAR包,只是用来运行测试,可以直接修改项目的打包类型:

<packaging>pom</packaging>

这种方式下,Maven不会触发任何打包相关的生命周期步骤,自然不会出现空JAR警告,同时mvn verify依然会正常执行测试用例。

方法3:仅生成测试JAR(如果有需要)

如果你需要生成包含测试代码的JAR文件,同时避免主JAR的警告,可以配置插件只执行测试JAR的打包:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.3.0</version>
            <executions>
                <execution>
                    <id>default-jar</id>
                    <phase>none</phase> <!-- 跳过主JAR打包 -->
                </execution>
                <execution>
                    <id>test-jar</id>
                    <goals>
                        <goal>test-jar</goal> <!-- 执行测试JAR打包 -->
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 08:59:18