我们将更新我们的CI系统,该系统创建从Java 7到Java 8的构建.稍后我们希望将项目逐个迁移到Java 8.当然,我们希望能够为仍使用Java 7的旧版本创建bugfix版本.
如果我们将构建相同的源,目标版本和源版本从JDK 7转移到JDK 8,我们能否确定不会出现任何问题?我们对开发机器进行了测试而没有任何问题.
在此之前,我们还逐步将部署服务器从JRE 7更新到JRE 8.
请注意,我们希望在CI系统上保持单个Java JDK安装,否则会变得复杂.
为了更清楚: 我对相同的执行结果更感兴趣,而不是相同的字节码.如果我理解正确的话,相同的字节码只会确认第一个(在相同的JRE上运行).
在我们在Java 8上运行所有部署之前,我们不会在代码中使用Java 8功能.因此兼容性不是问题.
我们有一个旧的 Flyway 数据库更新
UPDATE plays SET album = (regexp_matches(album, '^6,(?:(.+),)?tv\d+'))[1]
Run Code Online (Sandbox Code Playgroud)
...在 9.2 到 9.6 的任何 Postgres 版本上运行良好,但在最新的 Postgres 10 上运行失败。即使在没有任何 JDBC 的情况下直接运行时也会发生。
ERROR: set-returning functions are not allowed in UPDATE
Run Code Online (Sandbox Code Playgroud)
是否存在我在 10 版发行说明中没有注意到的向后不兼容性?有解决方法吗?