V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zzfer
V2EX  ›  程序员

gitLab CI/CD 打 jar 包问题

  •  
  •   zzfer · 2021-11-15 16:02:16 +08:00 · 1417 次点击
    这是一个创建于 1100 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题描述:使用 gitLab CI 打的 jar 包,然后打成镜像部署,发现 outh2 找不到用户。

    然后使用本地打的 jar 打成镜像并部署,没有问题。

    下载了 gitLab CI 打的 jar 包,解压,用命令

    jar -cfM0 xx.jar ./

    重新打成 jar 。好使了 有人知道这是怎么回事吗

    第 1 条附言  ·  2021-11-16 11:02:43 +08:00
    补充一下
    找不到用户的语句是:(UserDetails) SecurityContextHolder.getContext().getAuthentication() .getPrincipal();
    第 2 条附言  ·  2022-03-03 14:53:17 +08:00
    是类加载顺序问题,不同服务器电脑文件顺序不一样导致的类加载顺序也不一样。修改方案是:强制限制加载顺序
    5 条回复    2021-11-16 10:20:55 +08:00
    julyclyde
        1
    julyclyde  
       2021-11-15 16:35:23 +08:00
    你把俩文件解压缩对比一下
    hingbong
        2
    hingbong  
       2021-11-15 16:53:37 +08:00
    https://github.com/scala/jardiff
    一个 Scala 写的字节码对比工具,用 git 和这个工具搭配解压对比一下两个包的字节码有什么不同
    zzfer
        3
    zzfer  
    OP
       2021-11-15 17:03:35 +08:00
    @julyclyde 对比了,一开始替换了几个有差异的文件,然后重新打包就好使了,我还以为是这几个文件导致的。后面慢慢排查,发现不需要替换文件,直接解压了,重新打成 jar 包就好了
    zzfer
        4
    zzfer  
    OP
       2021-11-16 10:18:27 +08:00
    @hingbong 大佬,这个是要先跑起来这个 scala 项目,再用命令对比吗
    zzfer
        5
    zzfer  
    OP
       2021-11-16 10:20:55 +08:00
    @hingbong 现在已经可以确定可能是编码有问题。线上的 jar 用命令打镜像也不好使。但线上的 jar 下载到本地,然后解压,再 jar 命令压缩成 jar 包,打成镜像就好使了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1251 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 18:13 · PVG 02:13 · LAX 10:13 · JFK 13:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.