【问题标题】:Jenkinsfile shared libraries IDE supportJenkinsfile 共享库 IDE 支持
【发布时间】:2018-03-23 13:54:08
【问题描述】:

由于我的 Jenkinsfile 有近 2000 行代码(脚本化管道),显然最好将其重构为使用共享库。阻止我的事情是我必须在 Jenkinsfile 中导入这个库的方式。使用@Library 表示法导入全局配置的库或使用库步骤动态加载库我失去了代码完成和CTRL+单击方法\类\变量的可能性。

我错过了什么吗?你如何解决这个问题?回到 20 年前在所有代码库中手动搜索某个方法而不是简单地在 IDE 中单击它以找到它的实现,这是非常令人沮丧的。

【问题讨论】:

    标签: jenkins import ide shared-libraries jenkins-pipeline


    【解决方案1】:

    您可以做几件事。 首先,如果您的库具有 .groovy 扩展名,则在其中使用类,例如:

    class NotificationLib() {
    }
    

    然后,在您的 Lib 类中添加您感兴趣的方法。 下一步将是(所有这些都假设您的管道和库在同一个存储库中)在管道中使用 @Library,但我们也为您的库的类导入或新建 很可能您需要在 Lib 类中包含构造函数,但这很好。

    希望对您有所帮助。

    【讨论】:

    • 感谢您的建议。不幸的是,我发现我不能使用全局库,因为我想将脚本保留在分支中以便有可能在那里进行更改。所以我唯一的选择是使用动态的“库”步骤,它根本没有导入。所以基本上从IDE的角度来看(带有groovy SDK的Intellij IDEA)我得到了一堆根本没有连接的文件。我越是把它们分成合适的步骤,我得到的导航就越地狱。
    • 您是否将库保存在实际管道文件所在的同一存储库中?
    • 是的,管道在同一个存储库中,只是与库相关的上一层。但就性能而言,这并不重要。我们得出以下结论: 1. wiki.jenkins.io/display/JENKINS/… 允许从动态库中运行我们需要的一切。 2. IntelliJ Idea 完美配合completion 和 CTRL+Click 当根目录被标记为sources root。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多