私はジャクソンライブラリの3つの瓶を持っています
コアとアノテーションの両方に対してmodule-info.javaを正常に作成し、jdepsを使用してそれらを名前付きmaoduleに変換しました。
databindの場合、次のコマンドを試しました。
jdeps--generate-module-info。--module-path%JAVA_HOME%\ jomds; jackson.core; jackson.annotations previousmods \ jackson-databind-2.8.10.jar
現在、次のエラーが発生しています:
Missing dependence: .\jackson.databind\module-info.java not generated
Error: missing dependencies
com.fasterxml.jackson.databind.AnnotationIntrospector -> com.fasterxml.jackson.annotation.JsonCreator not found
com.fasterxml.jackson.databind.AnnotationIntrospector -> com.fasterxml.jackson.annotation.JsonCreator$Mode not found
com.fasterxml.jackson.databind.AnnotationIntrospector -> com.fasterxml.jackson.annotation.JsonFormat not found
com.fasterxml.jackson.databind.AnnotationIntrospector -> com.fasterxml.jackson.annotation.JsonFormat$Value not found
com.fasterxml.jackson.databind.AnnotationIntrospector -> com.fasterxml.jackson.annotation.JsonIgnoreProperties not found
com.fasterxml.jackson.databind.AnnotationIntrospector -> com.fasterxml.jackson.annotation.JsonIgnoreProperties$Value not found.
jackson-databindのmodule-info.javaを生成するにはどうすればよいですか?
簡単に言うと、はい、ライブラリを明示的なモジュールに変換する必要があります。
このjlink
ツールは、必要なモジュールのみを含むトリミングされたバイナリイメージを提供することを目的としています。問題は、自動モジュールが、すべてのJDKモジュールを読み取ることができるクラスパス(別名、名前のないモジュール)にアクセスできることです。したがって、何もトリミングされません。
このスレッドは、YouTubeビデオへのリンクとともに、これも述べています。
この例commons-lang3-3.5.jar
は、jlink
デモ用のexplictモジュールに変換されます。
編集:具体的には、ここでの例であるスクリプトがために、変換、ことjackson-core
、jackson-annotations
およびjackson-databind
レガシー瓶モジュラー瓶へ。
アイデアは次のとおりです。
jdeps --generate-module-info
レガシーjarで実行module-info.java
上から追加し、再コンパイルして、再圧縮します秘訣は、依存関係のあるモジュラーjarは、コマンドラインパラメーターとしてそれらの依存関係を必要とすることです。たとえば、ここにjackson-databind
(いくらか抽象化されています):
# here, jackson-core and jackson-annotations have been built
# jackson-databind
jdeps --module-path $ROOT_DIR/modules \
--add-modules jackson.annotations,jackson.core \
--generate-module-info work $JACKSON_DATABIND_JAR
javac --module-path $ROOT_DIR/modules \
--add-modules jackson.annotations,jackson.core \
-d $ROOT_DIR/classes module-info.java
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加