当前位置: 首页 > 知识库问答 >
问题:

如何在一个文件中声明Groovy类,并在另一个文件中的Groovy脚本中使用它?

景永望
2023-03-14

在阅读了许多文章之后,我被困在这个非常简单的任务上。

我有一个只有两个文件的沙盒项目:

src/main/groovy/classes/foo

package classes.foo

class Foo{
    @Override
    String toString() {
        return "Foo"
    }
}

和src/main/groovy/脚本/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?

共有1个答案

田嘉澍
2023-03-14

正如dagget所建议的,我必须根据根文件夹指定类路径,在我的示例中,根文件夹是groovy:

groovy -cp src/main/groovy src/main/groovy/scripts/script.groovy
 类似资料:
  • 我使用groovy脚本中的方法创建了一个自定义dsl命令链。我从另一个groovy文件访问此命令链时遇到问题。是否有实现功能的方法? 我尝试过使用“evaluate”,它可以加载groovy文件,但无法执行命令链。我尝试过使用GroovyShell类,但无法调用这些方法。 我这里有一个小房间。groovy中执行“please show the cube\u root of 1000”会产生10的结

  • 我有一些库脚本:lib1。groovy: lib2.groovy: lib3.groovy: 并希望在另一个脚本中使用它们:conf.groovy: conf.groovy是由用户配置的,他不知道我的后台lib脚本!他只知道提供的方法/任务:a()、b()、c()。实际上,我创建lib脚本是为了简化用户。 有没有办法将lib目录中的所有脚本(脚本lib1、lib2m、lib3)都包含到conf.g

  • 问题内容: 我正在尝试将内容从Jenkinsfile中分离出来,以制作一个时髦的脚本。但是它无法调用这些脚本:这是代码: file.groovy 看起来Jenkinsfile能够调用file1.groovy但总是给我一个错误: 问题答案: 如果要从外部文件中获取可用的方法,则需要执行以下操作 在您的中,返回对方法的引用 编辑 似乎不是必需的 要么 正如@Olia所提到的 应该管用 这是有关的参考。

  • 我正在尝试将Jenkinsfile中的内容分离到groovy脚本中进行制作。但它无法调用这些脚本:下面是代码: 文件groovy公司 看起来Jenkinsfile能够调用file1.groovy但总是给我一个错误:

  • 我有三份工作。它们是。 必须并行运行和。 这些作业定义文件如下所示。 job1.xml

  • 下面是我的Groovy脚本,它实例化了我的类。它是一个更大的Groovy脚本的一部分,由许多类组成,它作为测试用例位于SoapUI的测试套件中: 在上面的“Run”类中(如果我愿意的话),我可以引用“context”,以便定义GroovyUtils。如何将“上下文”传递给另一个类,即模型,以便在模型中使用GroovyUtils?即: 上述代码在尝试引用上下文时会导致错误,尽管它与“Run”类位于同