Rumah > Java > javaTutorial > teks badan

Bagaimana untuk mengelakkan kebergantungan bulat dalam projek Java

王林
Lepaskan: 2023-05-04 15:55:06
ke hadapan
1271 orang telah melayarinya

Contohnya:

Bagaimana untuk mengelakkan kebergantungan bulat dalam projek Java

Dalam gambar, perpustakaan API kami mengimport beberapa perpustakaan, tetapi perpustakaan ini juga bergantung pada versi perpustakaan X yang berbeza, ini akan mengelakkan konflik pergantungan.

Bagaimana untuk menyelesaikan masalah ini

Sebelum terdapat alat pengurusan perpustakaan Maven & Gradle, apabila kami membangunkan projek Java, kami perlu menghabiskan banyak masa untuk menyelesaikan pergantungan konflik dalam projek kami. Pengenalan alat Maven & Gradle telah banyak menyelesaikan masalah pergantungan kami, tetapi banyak kali kami masih akan melihat masalah seperti: ClassNotFoundException, MethodNotSupportedException, NoClassDefNotFound Dalam banyak kes, kami bergantung pada pengalaman pembangun untuk menyelesaikannya secara manual. Pada masa yang sama, kami juga boleh bergantung pada Beberapa alatan pembangunan membantu kami menyelesaikan masalah, seperti:

Penganalisis Ketergantungan dalam alatan pembangunan Eclipse/IntelliJ

Ia boleh memaparkan semua kebergantungan dan membantu pembangun mencari pustaka yang bercanggah.

Bagaimana untuk mengelakkan kebergantungan bulat dalam projek Java

Apabila anda mengesan perpustakaan yang mengandungi kebergantungan yang menyebabkan masalah, ia perlu dikecualikan daripada fail pengurusan kebergantungan kami (pom.xml atau build.gradle) Semua perpustakaan dengan versi kebergantungan yang berbeza.

pemalam maven-enforcer-plugin

Maven menyediakan pemalam Maven-Enforcer-Plugin untuk mengesahkan pematuhan dengan kontrak (atau mengesahkan persekitaran pembangunan) . Contohnya, versi JDK, versi Maven, persekitaran pembangunan (Linux, Windows, dll.), versi pakej balang bergantung, dsb.

Untuk menggunakan pemalam, anda hanya perlu memperkenalkannya dalam pom:

<plugin>     <groupid>org.apache.maven.plugins</groupid>     <artifactid>maven-enforcer-plugin</artifactid>     <version>1.3.1</version>     <executions>         <execution>             <id>enforce</id>             <configuration>                 <rules>                     <dependencyconvergence></dependencyconvergence>                 </rules>             </configuration>             <goals>                 <goal>enforce</goal>             </goals>         </execution>     </executions> </plugin>
Salin selepas log masuk

dalam Apabila melaksanakan pakej bersih mvn, versi balang yang bercanggah dan pom induknya akan dicetak dalam konsol, seperti berikut:

[INFO] --- maven-enforcer-plugin:1.3.1:enforce (enforce) @ uaf-uafei-provider --- [WARNING]  Dependency convergence error for com.google.guava:guava:16.0 paths to dependency are: +-com.uaf.uafei:uaf-uafei-provider:0.2.09-SNAPSHOT   +-com.uaf:microservice-sleuth:0.2.09-SNAPSHOT     +-org.springframework.cloud:spring-cloud-starter-openfeign:2.1.5.RELEASE       +-io.github.openfeign:feign-hystrix:10.4.0         +-com.netflix.archaius:archaius-core:0.7.6           +-com.google.guava:guava:16.0 and +-com.uaf.uafei:uaf-uafei-provider:0.2.09-SNAPSHOT   +-com.uaf:microservice-apollo:0.2.09-SNAPSHOT     +-com.google.inject:guice:4.1.0       +-com.google.guava:guava:19.0  [WARNING] Rule 0: org.apache.maven.plugins.enforcer.DependencyConvergence failed with message: Failed while enforcing releasability the error(s) are [ Dependency convergence error for com.google.guava:guava:16.0 paths to dependency are: +-com.uaf.uafei:uaf-uafei-provider:0.2.09-SNAPSHOT   +-com.uaf:microservice-sleuth:0.2.09-SNAPSHOT     +-org.springframework.cloud:spring-cloud-starter-openfeign:2.1.5.RELEASE       +-io.github.openfeign:feign-hystrix:10.4.0         +-com.netflix.archaius:archaius-core:0.7.6           +-com.google.guava:guava:16.0 and +-com.uaf.uafei:uaf-uafei-provider:0.2.09-SNAPSHOT   +-com.uaf:microservice-apollo:0.2.09-SNAPSHOT     +-com.google.inject:guice:4.1.0       +-com.google.guava:guava:19.0 ]
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk mengelakkan kebergantungan bulat dalam projek Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan