1

在 Jenkins Pipeline 中,我们有一个由 CPSGroovyShell 执行的 CpsGroovyScript,它带有一个自定义类路径,该路径附加到全局库位置的路径。

为了能够在使我的 Jenkins 实例上的所有管道可用之前测试我的更改,我想通过卸载类并在运行时从自身修改脚本的类路径来覆盖类路径。

我的想法是在当前类路径之前添加一个新位置,以便首先找到更改的类。this.class.classLoader.addURL()很棒,但新路径到类路径的末尾。

.../src- 这是当前生产代码的根目录,默认情况下它在类路径中 .../branch-src- 这是我更改代码的根目录,我希望使用它而不是.../src

例如.../src/com/foo/Bar.groovy.../branch-src/com/foo/Bar.groovy当我打电话import com.foo.Barnew com.foo.Bar()

如果这根本行不通,是否还有其他技巧,即完全替换原始类路径,或替换整个类加载器,无论如何。

4

0 回答 0