Java 如何将类从另一个文件导入/加载到一个文件中

Java 如何将类从另一个文件导入/加载到一个文件中,java,jenkins,groovy,jenkins-pipeline,jenkins-groovy,Java,Jenkins,Groovy,Jenkins Pipeline,Jenkins Groovy,我需要导入在Jenkins文件外部定义的自定义类。这些类具有需要参数的构造函数。我已经尝试对每个类文件使用load(),但这似乎只适用于只定义静态方法的脚本文件。当我尝试使用它加载我的类文件时,它抛出了一个错误,即它找不到方法 我目前有一种方法可以导入这些类,但需要将存储库重新克隆为库(代码如下)。我想离开这个,因为它的效率很低,似乎它应该是不必要的 当前工作(但不是很好)实施: 詹金斯档案: lib = library(identifier: "<libraryName>@${en

我需要导入在Jenkins文件外部定义的自定义类。这些类具有需要参数的构造函数。我已经尝试对每个类文件使用load(),但这似乎只适用于只定义静态方法的脚本文件。当我尝试使用它加载我的类文件时,它抛出了一个错误,即它找不到
方法

我目前有一种方法可以导入这些类,但需要将存储库重新克隆为库(代码如下)。我想离开这个,因为它的效率很低,似乎它应该是不必要的

当前工作(但不是很好)实施:

詹金斯档案:

lib = library(identifier: "<libraryName>@${env.currentBranch}",
                      retriever: modernSCM([$class: 'GitSCMSource',
                      credentialsId: <credentialsId>,
                      id: '<id>',
                      remote: env.projectRemote,
                      traits: [[$class: 'jenkins.plugins.git.traits.BranchDiscoveryTrait']]])).com.company.jenkins.sdk

def git = lib.Git.new(this, currentStage, currentStep)
...


我想去掉library命令,用一种更简单的方法导入这些类来代替它。

我猜您已经看过共享库了,对吧?是的,不幸的是,它们不是我们特定用例的选项:/Jenkins Pipeline共享库功能正是为了做到这一点而设计的。如果您有一个以上的项目想要使用它们,那么共享库是很好的(因此被称为“共享库”),但是如果您只想在工作中加载一些Groovy类,那就有点糟糕了。
load
方法似乎只适用于函数,大多数变通方法都要求对不受信任的代码进行安全豁免。
package com.company.jenkins.sdk.Git

class Git implements Serializable {
    def script
    def stage
    def step

    Git(script, stage, step){
        ...
    }
}