如何从 groovy 中当前包的上一层导入 - 详细说明
How to import from one level above the current package in groovy - elaboration
我遇到的问题与此处描述的问题非常相似:
我不想将 SharedState 移动到 action/pkg 子目录。我想做的是保持以下结构:
- groovy/动作/TestDataHelper
- groovy/action2/TestDataHelper2
- groovy/action3/SharedState
然后从 TestDataHelper 和 TestDataHelper2 获得对 SharedState 的访问权限。
无论如何我不能使用包来做到这一点,我倾向于理解默认情况下是不可能的。我可以改用类路径恶作剧,但首先需要一些指导。
感谢任何类型的反馈。
答案是在 Jenkins 作业种子作业 - 构建中的高级部分中使用额外的 class 路径。路径需要匹配项目的mother目录。
/home/user/mother_dir
groovy 脚本可以在 /home/user/mother_dir 下的任何位置,在我的例子中它在 /home/user/mother_dir/other_dir/script.groovy
下
然后,我将我想要导入的 classes 放入 /home/user/mother_dir/package_dir 的包中。在与作业映射的 groovy 脚本中,我导入了 package.* 并可以从 package_dir.
访问所有必要的 classes
我遇到的问题与此处描述的问题非常相似:
我不想将 SharedState 移动到 action/pkg 子目录。我想做的是保持以下结构:
- groovy/动作/TestDataHelper
- groovy/action2/TestDataHelper2
- groovy/action3/SharedState
然后从 TestDataHelper 和 TestDataHelper2 获得对 SharedState 的访问权限。
无论如何我不能使用包来做到这一点,我倾向于理解默认情况下是不可能的。我可以改用类路径恶作剧,但首先需要一些指导。
感谢任何类型的反馈。
答案是在 Jenkins 作业种子作业 - 构建中的高级部分中使用额外的 class 路径。路径需要匹配项目的mother目录。
/home/user/mother_dir
groovy 脚本可以在 /home/user/mother_dir 下的任何位置,在我的例子中它在 /home/user/mother_dir/other_dir/script.groovy
下然后,我将我想要导入的 classes 放入 /home/user/mother_dir/package_dir 的包中。在与作业映射的 groovy 脚本中,我导入了 package.* 并可以从 package_dir.
访问所有必要的 classes