groovy - 如何在一个文件中声明一个 Groovy 类并在另一个文件的 Groovy 脚本中使用它?
问题描述
在阅读了许多线程之后,我被困在这个非常简单的任务上。
我有一个只有两个文件的沙盒项目:
src/main/groovy/classes/foo
package classes.foo
class Foo{
@Override
String toString() {
return "Foo"
}
}
和src/main/groovy/scripts/script.groovy
package scripts
import classes.Foo
def foo = new Foo()
print foo.toString()
现在,如果我运行命令:
groovy src/main/groovy/scripts/script.groovy
我收到以下错误:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
src\main\groovy\scripts\utils\script.groovy: 3: unable to resolve class classes.Foo
@ line 3, column 1.
import classes.Foo
^
1 error
如何在脚本 script.groovy 中使用我的类 Foo ?
解决方案
正如 dagget 所建议的,我必须根据我的根文件夹指定类路径,在我的例子中是groovy:
groovy -cp src/main/groovy src/main/groovy/scripts/script.groovy
推荐阅读
- excel - 如何检测用户将数据输入到列中
- java - HikariCP Google Cloud SQL JDBC 套接字工厂 cloudSqlInstance 属性未设置
- pip - 如何在 Windows 10 上安装 nmslib
- react-native - 无法使用 react-native-image-picker 启动裁剪窗口
- python - 语音转文本:google.api_core.exceptions.PermissionDenied:403
- sql-server - 如何在 SQL 中使用子查询查找特定记录
- php - 如何在一个功能中使用原则 orm 多个实体管理器
- java - 有没有办法在 UDF 中添加一个新列(在 java spark 中)
- postgresql - 如果我需要查询(WHERE)列的任何组合,我应该将它们全部索引吗?
- node.js - 如何在微服务中进行身份验证?