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

如何在jenkins中实现共享库,而不在“管理jenkins”中配置“全局管道库”?

夔学智
2023-03-14

由于我无法访问组织中的“管理Jenkins”菜单,我无法在“管理Jenkins”中的“全局管道库”中配置共享库。

没有在Manage Jenkins中进行配置,是否有其他方法实现此功能?

(或)

是否可以通过管道脚本配置“全球管道库”部分,而不管访问权限如何?

如果可能,请您在答案中共享一些代码片段。

共有3个答案

孟英光
2023-03-14

正如上面的一些答案所提到的,您可以在运行时使用库标识符加载库,也可以在您尝试运行的Jenkins作业的文件夹级别配置库。在大多数情况下,开发人员没有对Jenkins的管理员权限。但是,允许他们访问和更新文件夹级别的配置。您可以检查您是否拥有这些特权。在运行时为所有管道脚本加载库会更方便。

燕承安
2023-03-14

加载库

您可以从源代码管理(如git)加载库,如下所示:

def myLib= library(
    identifier: 'myLib@master', retriever: modernSCM
    (
        [
            $class: 'GitSCMSource',
            remote: 'https://bitbucket.org/shaybc/commonlib.git',
            credentialsId: 'bitbucketCreds'
        ]
    )
)

库中的Groovy类

假设这是groovy类:

package my.domain

class Tester
{
    public static String staticTest()
    {
        return "this is from a static method";
    }

    public String test()
    {
        return "this is from an instance method";
    }
}

从脚本化管道调用方法

然后调用这样的静态方法:

myLib.my.domain.Tester.staticTest();

还有这样一个实例方法:

// call the constructor (you can also call a constructor with parameters)
def tester = myLib.my.domain.Tester.new();

// call your instance method
tester.test();

阅读更多:

>

  • 动态加载库

    @Library注释和Library步骤之间的区别

    私有共享库示例

  • 阳宗清
    2023-03-14

    无需在“管理Jenkins”中进行配置。我们可以在管道脚本中使用“LibraryIdentifier”来加载jenkins构建中的库。

     类似资料:
    • 我们试图切换到jenkins管道,但我在groovy/java的低水平阻止了我们建立一个共享库。 这里是我的共享库(位于bitbucket中git repo的{root}/src/com/pipeline.groovy中)我必须承认,我在这里做什么都不知道,因为我不知道包裹的定义 Jenkins的管道看起来 通过所有这些设置,我最终得到了错误: 我怀疑我的漂亮包裹的定义,但我坚持这样做。 非常欢迎

    • 我将我的Jenkins Pipeline存储为Jenkins共享库中的Groovy脚本。我想为不同的工作使用不同的版本。我的共享库脚本称为如下: 我已将sharedLib repo中的不同版本标记为。万一我想用v1。0,我用注释引用了它,如下所示。 在我的工作中,我通过调用groovy脚本访问了共享库,并使用了上面的注释,如图所示: 我运行这项工作时出错了。以下是我看到的错误。 当我使用。我哪里出

    • 问题内容: 我在Jenkins管道的共享库中有一个方法。想法是使用该库并将文件上传到远程主机。该库将导入到单例库中。 实例化的类如下所示: 即使我在日志中看到该行。我看不到命令正在执行。我缺少某种无法调用的功能吗? 编辑 当我直接在库中使用时,它可以工作。 但是,尝试使用时不起作用。 我得到的异常是: 问题答案: 如此处所述,您需要捕获stdout / stderr才能 _看到_任何内容。 至少:

    • 我在Jenkins管道的共享库中有一个方法。其想法是使用此库并将文件上载到远程主机。该库导入到单例库中。 实例化的类如下所示: 尽管我在日志中看到了println行。我看不到正在执行curl命令。是否有我缺少的不调用cmd的东西。执行才能工作? 编辑 当我在库中直接使用curl时,它可以工作。 但是,当尝试使用时,它不起作用。 我得到的例外是:

    • 可以在jenkins管道共享库中导入和使用常规java库吗?我想导入AWS SDK for java,并在管道代码中直接使用它。我必须将其添加到共享库的src dir中吗?

    • 首先,我是新来的Java,Groovy和Jenkins,所以请对我有耐心;) 我正在准备一个带有管道支持的Jenkins服务器,以备将来在构建环境中使用。我们使用一种特殊的内部脚本语言,为此我必须用java编写一个包装器。只有在Groovy中才能完成这项工作,我们必须使用这种特殊的语言。 我尝试过很多方法将java库引用到这个jenkins项目中,但都没有成功。我主要是在https://githu