https://github.com/google/guice/pull/1169#issuecomment -395095124によると、ASMのシェーディングを停止するときが来たのではないでしょうか。
これにより、必要に応じてASMの独自のコピーを持参できるようになり、JDKの新しいバージョンがリリースされ、Guiceがまだ更新されていない場合は、ブロックが解除されます。 ゲームの先を行っていない人のために、MavenPomにデフォルトを提供することは明らかです。 これは、JDKが6か月のリリースリズムを継続するので役立つ可能性があります。
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がまだ更新されていない場合は、ブロックを解除します。
新しいクラスファイルバージョンをサポートするにはAPIレベルも更新する必要があるため、ASMをシェーディングしないだけでは十分ではないと思います。
新しいクラスファイルバージョンをサポートするにはAPIレベルも更新する必要があるため、ASMをシェーディングしないだけでは十分ではないと思います。[...]
また、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で行われます。 このdiffを使用すると、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
ところで:asm6.2.1が利用可能です
他の人が述べているように、新しいJDK機能をサポートするには、コードを(guiceとcglibの両方で)変更する必要があるため、asmをシェーディングしないと実際には解決されません。
asm7がリリースされた日にこのスレッドにpingを実行すると、同じ日または翌日に新しいcglibとguiceをリリースしようとします(予期しない問題が発生しないことを前提としています)。
@sameb素晴らしい、ありがとう! 私は確かにあなたにpingします:smile:
Ping @sameb -ASM 7がリリースされました! https://github.com/google/guice/issues/1205#issuecomment-433649551を参照してください
ASM8.0.1が利用可能です。
最も参考になるコメント
asm7がリリースされた日にこのスレッドにpingを実行すると、同じ日または翌日に新しいcglibとguiceをリリースしようとします(予期しない問題が発生しないことを前提としています)。