JHipster 从 6.1.2 升级到 6.2.0 的问题

Problem with JHipster Upgrade from 6.1.2 to 6.2.0

我遇到(并解决了)一个严重的 JHipster 升级错误。我的问题很简单,但首先有一些设置和背景故事,所以我将把它分成几个部分。

(0) 开发环境
(1) 升级问题
(2) Investigation/fix 策略
(3) 解
(4) 个问题


(0) 开发环境

Windows10,Gradle5.4.1,节点 10.16.3,npm 6.11.2,纱线 1.16.0,MariaDB 10.3,JDK11,IntelliJ 2019.2.2 , git 2.23.0

我的项目:单体应用,使用 Gradle、Angular、JWT 身份验证、用于测试和生产的 MariaDB,无搜索。


(1) 升级问题

我的代码是 Matt Raible 的书中概述的 21 点项目:The JHipster Mini-Book v5.0.3。我从 JHipster 6.0 开始我的开发。整个夏天,我定期审查代码,并应用升级:6.0.1 到 6.1.1 到 6.1.2(在每种情况下,在解决了一些冲突之后,项目将顺利编译 运行 ).

上周,我注意到JHipster 6.2.0 发布了。我制作了 6.1.2 工作代码的 copy/backup,更新了生成器(npm update -g generator-jhipster),应用了升级(jhipster upgrade),解决了冲突,并且... 失败。堆栈跟踪相当长且涉及。如果有人喜欢,我稍后会添加到post。但是,从本质上讲,测试失败了,应用程序无法启动(仅导致错误页面:"An error has occurred :-(",然后是冗长的文本,提示可能出了什么问题,并提出了修复建议)。

恢复原代码,一切正常。对两个项目进行比较,唯一的变化是与升级相关的变化。对失败感到惊讶,我挠了挠头,然后做了以下。


(2) Investigation/fix 策略

此时我的项目有两个版本,我将其标记为:6.1.2-working(升级前的原始代码)和6.2.0-broken(原始代码+Jhipster升级) .

我创建了第三个新项目(我将其称为6.2.0-fresh)如下:

然后我在 6.1.2-working6.2.0-fresh 之间进行了比较,并将功能更改从 6.1.2-working 迁移到 6.2.0-fresh。最终,我按预期获得了新的 6.2.0-fresh 到 运行。理论上,我可以把东西留在那里,但是:

我对新的 6.2.0-fresh6.2.0-broken 进行了比较。唯一有意义的区别是特定文件的更改:package-lock.json

简单:

我现在 build/run 6.2.0-broken 项目没有问题了!


(3) 解决方案

要从 JHipster 6.1.2 升级到 6.2.0:

现在一切正常。


(4) 个问题

谢谢!

至少 David Steiman("Xetys",JHipster UAA 的 Stream Lead)知道使用 jhipster upgrade 升级 jhipster 生成的应用程序的问题,他在 JHipster 的演讲中谈到 "the dark side of jhipster" Conf 2019 并在演示中展示了一个解决方案:https://www.youtube.com/watch?v=Gg5CYoBdpVo.

我尽量听从他的建议,不去碰生成的 类 和配置——这更有趣,如果有人试图连接到两个数据库并保持可升级。

但这可能只能回答你的最后一个问题,而不是你在从 6.1.2 到 6.2.0 的这次特定升级中必须做的深入错误修复的问题。