Cari Ketergantungan Maven yang Tidak Digunakan

1. Gambaran keseluruhan

Semasa menggunakan Maven untuk menguruskan pergantungan projek kami, kami dapat melupakan kebergantungan apa yang digunakan dalam aplikasi kami.

Dalam tutorial ringkas ini, kita akan membahas cara menggunakan plugin dependensi Maven , plugin yang membantu kita mencari dependensi yang tidak digunakan dalam projek kita.

2. Penyediaan Projek

Mari mulakan dengan menambahkan beberapa pergantungan, slf4j-api (yang akan kita gunakan) dan koleksi umum (yang tidak akan kita gunakan):

  commons-collections commons-collections 3.2.2   org.slf4j slf4j-api 1.7.25   

Kami boleh mengakses plugin dependensi Maven tanpa menyatakannya di pom kami. Walau apa pun, kita boleh menggunakan definisi pom.xml untuk menentukan versi dan juga beberapa sifat jika diperlukan:

   maven-dependency-plugin 3.1.2   

3. Contoh Kod

Sekarang setelah projek kita disiapkan, mari tulis barisan kod di mana kita menggunakan salah satu kebergantungan yang kita tentukan sebelumnya:

public Logger getLogger() { return LoggerFactory.getLogger(UnusedDependenciesExample.class); }

The LoggerFactory dari perpustakaan Slf4J ini dikembalikan kaedah, tetapi tidak ada penggunaan perpustakaan biasa-koleksi, menjadikannya calon untuk penyingkiran.

4. Cari Tanggungan yang Tidak Digunakan

Dengan menggunakan plugin ketergantungan Maven, kita dapat mencari pergantungan yang tidak digunakan dalam projek kita. Untuk itu, kami meminta matlamat analisis pemalam:

$ mvn dependency:analyze [INFO] --- maven-dependency-plugin:3.1.1:analyze (default-cli) @ maven-unused-dependencies --- [WARNING] Unused declared dependencies found: [WARNING] commons-collections:commons-collections:jar:3.2.2:compile [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.225 s [INFO] Finished at: 2020-04-01T16:10:25-04:00 [INFO] ------------------------------------------------------------------------

Untuk setiap ketergantungan yang tidak digunakan dalam projek kami, Maven mengeluarkan amaran dalam laporan analisis.

5. Nyatakan Ketergantungan seperti yang Digunakan

Bergantung pada sifat projek, kadang-kadang kita mungkin perlu memuat kelas pada waktu runtime, seperti misalnya dalam projek berorientasikan pemalam.

Oleh kerana dependensi tidak digunakan pada waktu kompilasi, plugin-dependency maven akan mengeluarkan peringatan yang menyatakan bahawa ketergantungan tidak digunakan, padahal sebenarnya. Untuk itu, kami dapat menegakkan dan mengarahkan plugin yang digunakan perpustakaan.

Kami melakukan ini dengan menyenaraikan pergantungan di dalam propertiDependencies terpakai :

 org.apache.maven.plugins maven-dependency-plugin   commons-collections:commons-collections   

Menjalankan tujuan analisis lagi, kita melihat bahawa kebergantungan yang tidak digunakan tidak lagi dipertimbangkan dalam laporan.

6. Kesimpulannya

Dalam tutorial ringkas ini, kami belajar bagaimana mencari kebergantungan maven yang tidak digunakan. Menjadi amalan yang baik untuk memeriksa kebergantungan yang tidak digunakan secara berkala kerana ia dapat meningkatkan pemeliharaan dan mengurangkan ukuran perpustakaan projek kami.

Seperti biasa, kod sumber penuh dengan semua contoh boleh didapati di GitHub.