Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความแตกต่างระหว่าง Jdeps และ Jdeprscan tools ใน Java 9

Jdeps tool ใช้สำหรับ วิเคราะห์ dependencies ของคลาส คำสั่ง jdeps -jdkinternals jararchive.jar จะพิมพ์รายการคลาสทั้งหมดที่ใช้ Java internal API Jdeps ให้รายละเอียด dependencies ส่วน Jdeprscan เป็น tool อีกตัวที่ใช้ร่วมกับ flag --for-removal โดยเฉพาะ Tool นี้แสดงการใช้ deprecated API ของ jar archive ที่กำหนด แสดงเฉพาะ deprecated uses ของ JDK methods ไม่สามารถใช้ตรวจสอบ deprecation ใน third party jar ได้

Jdeps Tool

  • jdeps - Class dependency analyzer สำหรับ package-level และ class-level dependencies
  • jdeps class_file - แสดง package-level dependencies ของ class file
  • jdeps -verbose - แสดง class-level dependencies
  • jdeps jar_file - แสดง package-level dependencies ของ jar file
  • jdeps --inverse --require module_name - แสดง reverse dependencies ของ java module

ตัวเลือกสำคัญของ jdeps (จาก jdeps --help)

Usage: jdeps  
 can be a pathname to a .class file, a directory, a JAR file.

Options:
  -dotoutput           Destination directory for DOT file output
  -s, -summary              Print dependency summary only
  -v, -verbose              Print all class level dependencies
  -verbose:package          Print package-level dependencies
  -verbose:class            Print class-level dependencies
  -apionly, --api-only      Restrict analysis to APIs only
  -jdkinternals, --jdk-internals  Find dependencies on JDK internal APIs
  --check      Analyze module dependencies
  --generate-module-info   Generate module-info.java
  --generate-open-module   Generate module-info.java for open modules
  --list-deps               List dependencies and JDK internal API usage
  --list-reduced-deps       Same as --list-deps without implied reads
  -cp, -classpath, --class-path   Specify class path
  --module-path       Specify module path
  --upgrade-module-path   Specify upgrade module path
  --system       Specify alternate system module path
  --add-modules    Add modules to root set
  -m, --module        Specify root module
  --multi-release  Version for multi-release jars
  -p, --package        Find dependencies matching package
  -e, --regex        Find dependencies matching pattern
  --require    Find dependencies matching module
  -f, --filter       Filter dependencies
  -filter:package           Filter within same package (default)
  -filter:archive           Filter within same archive
  -filter:module            Filter within same module
  -filter:none              No filtering
  -include           Restrict analysis to matching classes
  -P, -profile              Show profile containing a package
  -R, -recursive            Recursively traverse runtime dependencies
  -I, --inverse             Analyze inverse dependencies
  --compile-time            Compile-time view of transitive dependencies
  -q, -quiet                Quiet mode
  -version, --version       Version information

jdeprscan Tool

  • jdeprscan - Java Deprecated API Scanner สำหรับสแกน deprecated API elements
  • jdeprscan class_file - สแกน deprecated APIs ของ class file
  • jdeprscan jar_file - สแกน deprecated APIs ของ jar file
  • jdeprscan --release X - สแกน deprecated APIs ของ JDK release เฉพาะ
  • jdeprscan --list --release X - แสดง deprecated APIs ทั้งหมดของ release เฉพาะ

ตัวเลือกของ jdeprscan (จาก jdeprscan --help)

Usage: jdeprscan [options] {dir|jar|class} ...
options:
  --class-path PATH    Search path for dependent classes
  --for-removal        Limit to APIs deprecated for removal
  --full-version       Print full version string
  -h, --help           Print help message
  -l, --list           List deprecated APIs (no scanning)
  --release 6|7|8|9    Java SE release for deprecated API set
  -v, --verbose        Verbose output
  --version            Print abbreviated version

ตารางเปรียบเทียบ

คุณสมบัติ Jdeps Jdeprscan
วัตถุประสงค์ วิเคราะห์ class dependencies สแกน deprecated API usage
ขอบเขต ทุกประเภท dependencies เฉพาะ JDK deprecated APIs
Third-party JAR รองรับ ไม่รองรับ
Module analysis รองรับ (--check, --generate-module-info) ไม่รองรับ
Output format Text, DOT, module-info.java Text list

เมื่อไหร่ควรใช้ tool ไหน

  • jdeps: ต้องการวิเคราะห์ dependencies, migrate ไป modules, หา internal API usage
  • jdeprscan: ต้องการหา deprecated API ที่ใช้ในโค้ด ก่อน upgrade Java version