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

Gmavenplus Plugin无法解析依赖类问题求助

解决gmaven-plus-plugin编译时找不到依赖类的问题

问题分析

你的场景是Maven项目仅包含test目录的Groovy Spock测试,main目录无代码,虽已引入主应用jar依赖,但编译阶段gmaven-plus-plugin报错找不到依赖类。核心原因是gmaven-plus-plugin默认会编译main目录代码,但你的main目录为空,插件可能在执行主源码编译阶段时,错误地尝试解析测试代码中引用的依赖类,或是插件配置未正确区分主源码与测试源码的编译范围。

解决方案

1. 调整gmaven-plus-plugin配置,仅编译测试源码

修改pom.xml中的插件配置,明确指定只处理test目录的Groovy代码,跳过main目录的编译:

<plugin>
    <groupId>org.codehaus.gmavenplus</groupId>
    <artifactId>gmaven-plus-plugin</artifactId>
    <version>1.13.1</version> <!-- 使用最新稳定版本 -->
    <executions>
        <execution>
            <id>compile-tests</id>
            <goals>
                <goal>testCompile</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <testSources>
            <testSource>
                <directory>${project.basedir}/src/test/groovy</directory>
                <includes>
                    <include>**/*.groovy</include>
                </includes>
            </testSource>
        </testSources>
    </configuration>
    <dependencies>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-all</artifactId>
            <version>3.0.17</version> <!-- 与你的Spock版本匹配 -->
            <type>pom</type>
        </dependency>
    </dependencies>
</plugin>

关键是只保留testCompile目标,不要包含compile目标,确保插件仅编译测试代码,不处理空的main目录。

2. 确认主应用依赖的scope配置

确保主应用jar的依赖不是test scope(测试代码需要依赖类在编译阶段可见),避免依赖在测试编译阶段不可用:

<dependency>
    <groupId>com.spas.shiproute</groupId>
    <artifactId>routepricer-main</artifactId>
    <version>你的版本号</version>
    <!-- 不要设置为<scope>test</scope>,除非明确需求 -->
</dependency>

3. 清理Maven缓存并重新构建

执行以下命令清理本地仓库缓存,排除依赖缓存问题:

mvn clean install -U

验证步骤

  1. 执行mvn compile,因main目录为空,且插件仅配置了testCompile目标,不会触发gmaven-plus-plugin的编译操作
  2. 执行mvn test,插件会编译test目录的Groovy代码并执行测试,此时应能正确加载主应用的类

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 09:29:59