問題タブ [multi-release-jar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
83 参照

java - 古いJDKを対象としたJPMS/Jigsaw互換のJavaライブラリ

Maven を使用して、JDK 7 および 8 と互換性のあるライブラリ jar ファイルを構築する方法を理解しようとしていますがmodule-info.java、そのパブリック API を明示的に宣言するファイルが含まれています。

問題: 古いターゲット バージョン用にコンパイルする必要がありますが、古い JDK は明らかに新しい JPMS 機能を認識していません。

Robert Scholte によるこの講演では、module-info ファイルのみを JDK9 でコンパイルするのが最善の方法のようです。しかし、どうすれば.jarに含めることができますか?

最小限の例pom.xmlは非常に役立ちます。:-)

編集:明確にするために:コンパイラエラーは発生しません。JDK 9 ユーザーに JPMS を使用するという基本的な概念について尋ねただけですが、私のライブラリは JDK 7 および 8 との下位互換性を維持しています。

0 投票する
1 に答える
2031 参照

java - Gradle のマルチリリース jar

マルチリリースjarを使用してJava 9+機能をバックアップJava 8実装で使用するようにライブラリをセットアップしようとして、しばらく頭を悩ませていました。ただし、それは私のプロジェクトのモジュールにのみ必要です。

モジュールの現在の build.gradle は次のようになります。

ただし、intellij で build.gradle を更新すると、次のエラーが発生します。 Could not find method java9Implementation() for arguments [file collection] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

これはgradle 4.8.1上にあることにも注意してください。