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.