Guice: 停止着色 ASM?

创建于 2018-07-13  ·  12评论  ·  资料来源: google/guice

根据https://github.com/google/guice/pull/1169#issuecomment -395095124,也许是时候停止对 ASM 进行着色了?

如果他们愿意的话,这将允许人们携带他们自己的 ASM 副本,并且当新版本的 JDK 出现并且 Guice 尚未更新时,他们将解除阻止。 我们显然会在我们的 maven pom 中为那些没有领先于游戏的人提供默认值。 随着 JDK 继续其 6 个月的发布节奏,这可能会有所帮助。

最有用的评论

如果你在 asm7 发布的那天 ping 这个线程,我会尝试在同一天或第二天发布一个新的 cglib 和 guice(假设没有出现意外问题)。

所有12条评论

sgtm,我相信它被遮蔽的原因是因为从历史上看,asm 与以前的版本非常不兼容……但我认为他们在最近的版本中改变了这一点。

@mcculls评论在这里也可能是相关的:

请注意,该构建已经生成了一个不捆绑 asm 或 cglib 的 Guice 版本:

http://repo1.maven.org/maven2/com/google/inject/guice/4.2.0/guice-4.2.0-classes.jar

这是在任何 JarJar'ing 之前的 Guice 类的 jar。

此外,如果您不需要 AOP,那么还有一个根本不使用 asm/cglib 的“no_aop”jar:

http://repo1.maven.org/maven2/com/google/inject/guice/4.2.0/guice-4.2.0-no_aop.jar

当新版本的 JDK 出现并且 Guice 尚未更新时,取消阻止它们

我认为不遮蔽 ASM 是不够的,因为 API 级别还需要更新以支持新的类文件版本:

https://github.com/google/guice/blob/35caaec1b4af0f20ab8b3fae8a1fc98afc0fd13e/core/src/com/google/inject/internal/util/LineNumbers.java#L144

我认为不遮蔽 ASM 是不够的,因为 API 级别还需要更新以支持新的类文件版本:[...]

而对于 Guice 中对 JDK11 的实验性支持,它只能使用实验性Opcodes.ASM7_EXPERIMENTAL :[1]。

https://gitlab.ow2.org/asm/asm/blob/master/asm/src/main/java/org/objectweb/asm/Opcodes.java#L55

对于 Guice 中对 JDK11 的实验性支持,它只能使用实验性 Opcodes.ASM7_EXPERIMENTAL: [1]。

在此 PR #1203 中完成。 有了这个差异,Gerrit 可以使用 JDK11、Bazel 和 VanillaJavaBuilder 构建(https://gerrit-review.googlesource.com/c/gerrit/+/194040):

$ bazel build --host_javabase=:jdk11 --host_java_toolchain=//:toolchain_vanilla --java_toolchain=//:toolchain_vanilla //:release
[...]
INFO: Analysed target //:release (0 packages loaded).
INFO: Found 1 target...
Target //:release up-to-date:
  bazel-bin/release.war
INFO: Elapsed time: 0.431s, Critical Path: 0.19s

顺便说一句:asm 6.2.1 可用

正如其他人所提到的,不着色 asm 实际上不会解决这个问题,因为代码需要更改(在 guice 和 cglib 中)以支持更新的 JDK 功能。

@sameb既然你在这里:
鉴于 Java 11将在下周发布,几天后 ASM 7.0也将发布- 您升级到 ASM 7 然后发布新的 Guice 版本的可能性有多大?
我在 Play Framework 上工作,并计划在接下来的几周内发布一个新版本。 但是,我们需要一个带有 AMS 7 的新 Guice 版本,以便新版本也可以在 Java 11 上运行。

任何预计到达时间?

如果你在 asm7 发布的那天 ping 这个线程,我会尝试在同一天或第二天发布一个新的 cglib 和 guice(假设没有出现意外问题)。

@sameb太好了,谢谢! 我肯定会 ping 你 :smile:

Ping @sameb - ASM 7 出来了! 见https://github.com/google/guice/issues/1205#issuecomment -433649551

ASM 8.0.1可用

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

jhm-ciberman picture jhm-ciberman  ·  10评论

gissuebot picture gissuebot  ·  17评论

gissuebot picture gissuebot  ·  3评论

felixblaschke picture felixblaschke  ·  51评论

Cybermaxke picture Cybermaxke  ·  7评论