小编Ser*_*zar的帖子

在多个类中扩展 Jenkins 工作 DSL 代码

我已经阅读了很多关于 Jenkins 工作 DSL 插件的教程,但我无法弄清楚如何创建一个工作工厂类,而该类又使用另一个生成工作的类。

我已经有很多工作 Groovy 脚本可以直接调用作业工厂并且可以正常工作并且我的作业已正确生成。我需要的是另一个类,它反过来使用以前的作业工厂生成大量作业。

我花了几个小时试图调试这个问题。我很确定它与闭包和实例化工厂对象有关。

package company.factory

import javaposse.jobdsl.dsl.DslFactory
import javaposse.jobdsl.dsl.Job

/**
 * Base DSL templates for all Jenkins jobs.
 *
 */
class JobFactory {
    private DslFactory dslFactory

    JobFactory(DslFactory dslFactory) {
        this.dslFactory = dslFactory
    }

    Job generateBaseJob() {
        dslFactory.job('TEST-1') {
            logRotator(365, -1, 1, -1)
        }
    }

    def generate() {
        generateBaseJob()
    }
}
Run Code Online (Sandbox Code Playgroud)

将其称为 Groovy 脚本有效:

import company.factory.JobFactory

JobFactory jobfactory = new JobFactory(this)

jobfactory.generate()
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试用另一个类扩展该类时,它失败了。

package company.flow

import company.factory.JobFactory

class DeploymentFlow {
    JobFactory jobfactory = new JobFactory(this) …
Run Code Online (Sandbox Code Playgroud)

groovy jenkins jenkins-job-dsl

4
推荐指数
1
解决办法
1347
查看次数

关于为 Perl 模块捆绑 CentOS RPM 的问题

我试图在 RPM 包中捆绑一堆 Perl 模块以便于部署。我尝试了很多工具,但最终选择了 fpm ( https://github.com/jordansissel/fpm )。

因此,我设法为每个必需的 Perl 模块手动构建和安装每个 RPM。我不确定这是正确的。但是我对 RPM 包没有很多经验。但据我所知,这是正确的行为。每个 RPM 包都包含相应 Perl 模块所需的所有依赖项。

问题是当我尝试使用生成的包来安装我的模块时,我遇到了一些冲突。

sudo yum --disablerepo=* localinstall *.rpm
Run Code Online (Sandbox Code Playgroud)

当它尝试安装时:

Transaction Summary
==============================================================================================================================================================================================================
Install  174 Packages

Total size: 45 M
Installed size: 357 M
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Error: Transaction test error:
  file /usr/local/lib64/perl5/auto/Moose/Moose.so conflicts between attempted installs of Moose-Exporter-2.2013-1.x86_64 and Moose-2.2013-1.x86_64
  file /usr/local/lib64/perl5/auto/Moose/Moose.so conflicts between attempted installs of Moose-Role-2.2013-1.x86_64 and Moose-Exporter-2.2013-1.x86_64 …
Run Code Online (Sandbox Code Playgroud)

linux perl redhat rpm

1
推荐指数
1
解决办法
89
查看次数

标签 统计

groovy ×1

jenkins ×1

jenkins-job-dsl ×1

linux ×1

perl ×1

redhat ×1

rpm ×1