Groovy如何跨同级包导入类且无需调整原有目录结构
Groovy跨同级包导入类的classpath调整方案
你可以通过将groovy目录设置为classpath根目录,配合正确的包声明完成需求,具体操作如下:
1. 先给所有类补充正确的包声明
包路径从classpath根目录开始计算,你需要给三个类分别添加对应的包声明:
groovy/action/TestDataHelper顶部添加:package actiongroovy/action2/TestDataHelper2顶部添加:package action2groovy/action3/SharedState顶部添加:package action3
在需要访问SharedState的TestDataHelper、TestDataHelper2中,添加导入语句:import action3.SharedState
2. 不同场景下的classpath调整方法
命令行直接运行场景
执行groovy命令时,通过-cp参数指定groovy目录为classpath根目录即可,假设你当前处于groovy目录的上级目录,执行命令如下:groovy -cp ./groovy action/TestDataHelper.groovy
Gradle构建项目场景
在项目的build.gradle配置文件中,将groovy目录加入源码集,构建工具会自动将该目录设为classpath根目录,配置示例:
sourceSets { main { groovy { srcDir 'groovy' } } }
IDE(IDEA/ Eclipse)开发场景
找到项目中的groovy目录,右键标记为源代码根目录(IDEA对应Mark Directory as → Sources Root,Eclipse对应Add to Source Folder),IDE会自动将该目录加入运行时classpath,不需要额外配置即可正常导入访问。
内容的提问来源于stack exchange,提问作者Kuba Konieczny
相关产品推荐
相关产品推荐

