java - 有没有办法在不重新启动 Bitbucket 的情况下更新 Bitbucket 插件?
问题描述
我想更改用于镜像的 Bitbucket Server Repository Hook ( https://github.com/ef-labs/stash-hook-mirror ),然后删除原始版本并安装更新版本。
但是,在进行此类更改后,Bitbucket 开始使用堆栈跟踪给出java.lang.ClassCastException
错误,如下所示:
java.lang.ClassCastException: com.englishtown.bitbucket.hook.MirrorRequest cannot be cast to com.englishtown.bitbucket.hook.MirrorRequest
at com.atlassian.stash.internal.concurrent.HazelcastBucketedExecutor.schedule(HazelcastBucketedExecutor.java:63)
at com.atlassian.stash.internal.concurrent.DelegatingInternalBucketedExecutor.schedule(DelegatingInternalBucketedExecutor.java:24)
at com.englishtown.bitbucket.hook.MirrorRepositoryHook.lambda$schedulePushes$0(MirrorRepositoryHook.java:177)
at java.util.ArrayList.forEach(ArrayList.java:1259)
at com.englishtown.bitbucket.hook.MirrorRepositoryHook.schedulePushes(MirrorRepositoryHook.java:177)
at com.englishtown.bitbucket.hook.MirrorRepositoryHook.validate(MirrorRepositoryHook.java:138)
at com.atlassian.stash.internal.hook.repository.DefaultRepositoryHookService.validateSettings(DefaultRepositoryHookService.java:896)
at com.atlassian.stash.internal.hook.repository.DefaultRepositoryHookService.lambda$enable$0(DefaultRepositoryHookService.java:203)
at java.util.Optional.ifPresent(Optional.java:159)
似乎 BitBucket 缓存了插件中的数据,并且在插件删除后不会清除它。这是一个常见问题 - 请参阅那些票:https ://github.com/ef-labs/stash-hook-mirror/issues/84或https://github.com/ef-labs/stash-hook-镜子/问题/83
建议的解决方法是重新启动 BitBucket 实例,它可以工作。
另一个似乎可行的解决方法是重命名类和文件以包含一个版本作为后缀:like MirrorRepositoryHook.java
to MirrorRepositoryHookV331.java
.
有更优雅的解决方案吗?
解决方案
推荐阅读
- c++ - SDL 2 无法打开控制器但可识别操纵杆
- ios - UIAlertController 由模态视图控制器向上和离屏
- python - 如何获取通过 truffle 迁移到 web3 python 的合约实例?
- google-apps-script - 查看和审核 GSuite 域上的所有应用脚本
- python - 熊猫:计算自上次标签测量以来的时间
- html - Angular 5:无法将 MatDialog 的位置居中或设置样式
- python - 计算 .txt 中的单词,然后将结果写入相同的 .txt
- c# - 打印在标签上的数据库下拉列表值
- jetty - Embedded Jetty:注册 ServletRequestListener 的 ServletContextListener
- common-lisp - Clisp :选择给定长度的子列表