簡體   English   中英

顯示 JDK 模塊的依賴關系

[英]Showing JDK modules' dependencies

可以通過java --list-modules查看所有 JDK 模塊,但是是否可以通過mvn dependency:tree命令查看 JDK 模塊依賴樹?

[INFO] [dependency:tree]
[INFO] org.apache.maven.plugins:maven-dependency-plugin:maven-plugin:2.0-alpha-5-SNAPSHOT
[INFO] +- org.apache.maven.reporting:maven-reporting-impl:jar:2.0.4:compile
[INFO] |  \- commons-validator:commons-validator:jar:1.2.0:compile
[INFO] |     \- commons-digester:commons-digester:jar:1.6:compile
[INFO] |        \- (commons-collections:commons-collections:jar:2.1:compile - omitted for conflict with 2.0)
[INFO] \- org.apache.maven.doxia:doxia-site-renderer:jar:1.0-alpha-8:compile
[INFO]    \- org.codehaus.plexus:plexus-velocity:jar:1.1.3:compile
[INFO]       \- commons-collections:commons-collections:jar:2.0:compile

您可以使用jdeps ,例如:

jdeps --list-deps c:\path\to\your\jar

這將列出模塊依賴關系以及 JDK 內部 API 的 package 名稱(如果引用)。

例如:

jdeps --list-deps c:\jdk-11.0.2\lib\jrt-fs.jar

輸出:

Warning: split package: jdk.internal.jimage jrt:/java.base c:\jdk-11.0.2\lib\jrt-fs.jar
Warning: split package: jdk.internal.jimage.decompressor jrt:/java.base c:\jdk-11.0.2\lib\jrt-fs.jar
Warning: split package: jdk.internal.jrtfs jrt:/java.base c:\jdk-11.0.2\lib\jrt-fs.jar
   java.base

您可以使用模塊 API 生成圖表。 一個示例是使用以下代碼,例如在 JShell 中

import java.lang.module.*

ModuleFinder.ofSystem()
    .findAll()
    .stream()
    .map(ModuleReference::descriptor())
    .forEach(x -> System.out.println(x.name() + "\n\t" + 
                  Arrays.deepToString(x.requires().toArray())))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM