两个不同版本的 artifactory 可以在同一个 jenkins 实例中共存吗?

can two different versions of artifactory co-exist in same jenkins instance?

我有一个安装了最新 artifactory 插件的 jenkins 实例。我也有 artifactory 的源代码,我已经修改为我的新用途。因为我想测试它,所以我希望它与原始的 artifactory 插件共存,以便我可以将两者并排比较。我已经更改了 UI 中的名称空间,因此它们不会冲突。

问题 - 当我尝试上传我的插件时,它以某种方式覆盖了原来的人工制品插件,认为它是同一个插件。我继续将插件中 pom.xml 中的工件 name/project 名称更改为不同,但现在它给我错误 - "attempt to register a second Permission for ..."

这可以追溯到这里的 jenkins 源代码 -- https://github.com/jenkinsci/jenkins/blob/81701326a0ad2f07862bb034f9fb08be52f95608/core/src/main/java/hudson/security/PermissionGroup.java

关于如何使其成为可能的任何指示?

发生该错误是因为两个插件在 ArtifactoryPlugin class.

中定义了相同的权限组

但即使您解决了这个问题,如果 Jenkins 能够成功加载这两个插件,我也会感到惊讶,因为它们都具有相同的 Java 包名称。即使它们确实加载了,由于这种冲突,您在尝试加载或配置作业时也会遇到其他冲突。如果您随后修复了该问题,则可能会 运行 陷入 class 加载问题,因为两个插件具有相同的依赖关系。

如果您想同时测试两个版本,我会 运行 两个单独的 Jenkins 实例。
例如您的开发版本按照 mvn hpi:run 正常,另一个通过 java -jar jenkins.war --httpPort=8081.