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

gmaven插件执行groovy脚本时无法解析同包util类问题

问题排查与解决步骤

  • 检查Groovy脚本的包声明
    哪怕test.groovy和FarmerUtility类在同一个物理目录下,也必须在groovy脚本第一行声明和util类完全一致的package路径,比如util类包为com.example.farmer,则groovy开头必须加package com.example.farmer,Groovy不会自动根据文件路径补全包名。同时确认脚本中引用的类名大小写和Java类完全一致,Groovy对类名大小写敏感。
  • 为gmaven插件添加项目编译路径依赖
    gmaven 1.5版本默认执行时的classpath不会自动包含项目编译后的类和依赖,需要在configuration节点中新增classpath配置,修改后的完整插件配置如下:
<plugin>
    <groupId>org.codehaus.gmaven</groupId>
    <artifactId>gmaven-plugin</artifactId>
    <version>1.5</version>
    <dependencies>
        <dependency>
            <groupId>org.apache.ant</groupId>
            <artifactId>ant</artifactId>
            <version>1.9.13</version>
        </dependency>
    </dependencies>
    <executions>
        <execution>
            <id>call-groovy</id>
            <phase>package</phase>
            <goals>
                <goal>execute</goal>
            </goals>
            <configuration>
                <providerSelection>1.8</providerSelection>
                <source>src/main/java/test.groovy</source>
                <!-- 新增classpath配置引入项目自身编译后的类 -->
                <classpath>
                    <element>
                        <groupId>${project.groupId}</groupId>
                        <artifactId>${project.artifactId}</artifactId>
                        <version>${project.version}</version>
                    </element>
                </classpath>
            </configuration>
        </execution>
    </executions>
</plugin>
  • 调整执行阶段顺序(可选)
    如果配置完成后仍然报类找不到错误,可以将gmaven的执行阶段从package调整为process-classes,该阶段在Java编译完成之后、打包动作之前执行,能保证所有Java类都已经完成编译。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 14:36:05