Dènyèman, bon zanmi m 'Richard Fichtner te konseye w itilize kòmandman an pou debarase m de depandans ki deklare men ki pa itilize yo: mvn dependency:analyze https://bsky.app/profile/did:plc:cc2k5egfzqpf3nbjrs5xox4r/post/3lcxfnsc2h62m?ref_src=embed&embedable=true Pandan ke li te yon gwo lide ane de sa, li se konsèy danjere jodi a. Nan pòs sa a, mwen ta renmen eksplike kisa Plugin la fè ak poukisa ou pa ta dwe itilize li men nan pwojè ki pi senp yo. Kòmandman mvn dependency:analyze Maven sèvi ak yon achitekti plugin; nan kòmandman ki anwo a, plugin a se . Yon plugin gen plizyè ki gen rapò. Isit la, li nan . maven-dependency-plugin objektif analyze Analize depandans pwojè sa a epi detèmine kilès yo: itilize ak deklare; itilize ak pa deklare; yo pa itilize epi yo deklare. Objektif sa a fèt pou yo itilize otonòm, kidonk li toujou egzekite faz a - sèvi ak objektif olye lè w ap patisipe nan sik lavi konstriksyon an. test-compile dependency:analyze-only Pa default, yo itilize pou fè analiz la, ak limit akòz lefèt ke li travay nan nivo bytecode, men nenpòt analizè ka konekte nan paramèt . maven-dependency-analyzer analyzer -- depandans: analize se yon eleman pataje Maven. Deskripsyon li se byen deskriptif: maven-dependency-analyzer Analize depandans yo nan yon pwojè pou zafè ki pa deklare oswa ki pa itilize. : Paske analiz yo fè sou olye de sous la, gen kèk ka yo pa detekte tankou konstan, anotasyon ak retansyon sous sèlman, ak lyen nan Javadoc. Sa a ka mennen nan rezilta kòrèk lè sa yo se itilizasyon yo sèlman nan yon depandans. Avètisman bytecode Eleman prensipal la se , ki itilize ak . ProjectDependencyAnalyzer ClassAnalyzer DependencyAnalyzer -- maven-dependency-analyzer Avètisman an montre klèman ke li travay nan nivo . An patikilye, li mansyone klèman ke li pa konsidere kòmantasyon nan nivo sous. bytecode Kòmansè Spring Boot Mwen te dekri ki jan yo ou a yon bon bout tan de sa, epi li pa t 'chanje anpil depi lè sa a. Si w se nouvo nan kòmanse Spring Boot, isit la nan yon rezime. desine pwòp starter Spring Boot SpringBoot depann sou klas AutoConfiguration. Klas AutoConfiguration yo se klas konfigirasyon regilye, , yo kontribye nan klas aplikasyon yo. Ou ka mete kritè deklanchman espesifik, tankou prezans nan yon pwopriyete Spring, men sa yo pa espesifik nan oto-konfigirasyon. sa vle di Isit la se yon koule trè senplifye: JAR ki vini otomatikman ak Spring Boot se . Ou ka tcheke kontni li yo : org.springframework.boot:spring-boot-autoconfigure META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports ... org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration org.springframework.boot.autoconfigure.web.embedded.EmbeddedWebServerFactoryCustomizerAutoConfiguration org.springframework.boot.autoconfigure.web.reactive.HttpHandlerAutoConfiguration org.springframework.boot.autoconfigure.web.reactive.ReactiveMultipartAutoConfiguration org.springframework.boot.autoconfigure.web.reactive.ReactiveWebServerFactoryAutoConfiguration org.springframework.boot.autoconfigure.web.reactive.WebFluxAutoConfiguration org.springframework.boot.autoconfigure.web.reactive.WebSessionIdResolverAutoConfiguration org.springframework.boot.autoconfigure.web.reactive.error.ErrorWebFluxAutoConfiguration org.springframework.boot.autoconfigure.web.reactive.function.client.ClientHttpConnectorAutoConfiguration org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration org.springframework.boot.autoconfigure.websocket.reactive.WebSocketReactiveAutoConfiguration org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration org.springframework.boot.autoconfigure.websocket.servlet.WebSocketMessagingAutoConfiguration org.springframework.boot.autoconfigure.webservices.WebServicesAutoConfiguration org.springframework.boot.autoconfigure.webservices.client.WebServiceTemplateAutoConfiguration Kòm yon egzanp, isit la nan : RestClientAutoConfiguration @AutoConfiguration(after = { HttpClientAutoConfiguration.class, HttpMessageConvertersAutoConfiguration.class }) //1 @ConditionalOnClass(RestTemplate.class) //2 @Conditional(NotReactiveWebApplicationCondition.class) //3 public class RestTemplateAutoConfiguration { // Class body } Mete lòd klas oto-konfigirasyon yo Aktive si klas la sou classpath la RestTemplate Aktive si nou pa nan yon kontèks aplikasyon entènèt reyaktif Remake byen ke loader klas la chaje klas jis byen, klas la sou classpath la oswa ou pa! Spring ogmante mekanis sa a nan tout li yo, jan yo wè pi wo a. An reyalite, rezolisyon klas ki konfigire nan anotasyon yo difere jiskaske yo jwenn aksè . RestTemplateAutoConfiguration kèlkeswa si RestTemplate klèman Pote la nan laj modèn maven-dependency-analyzer Committers te fèt analizè a an 2007: jan li te sanble lè sa a. Spring Boot te kòmanse pita, nan 2010. Pou rezon sa a, analizeur a pa t 'pran loading klas difere nan annotations. Remake byen ke sa a se toujou pa ka a; pwojè a pa jwenn anpil lanmou. men ki Lè w ap itilize plugin a sou yon pwojè Spring Boot, w ap jwenn anpil fo pozitif. Mwen te eseye li ak yon pwojè Spring Boot senp, lè l sèvi avèk WebFlux ak R2DBC sou PostgreSQL. Isit la nan yon ti ekstrè nan pwodiksyon an lè mwen kouri : mvn analyze:dependencies [WARNING] Unused declared dependencies found: [WARNING] org.springframework.boot:spring-boot-starter-data-r2dbc:jar:3.4.0:compile [WARNING] org.testcontainers:postgresql:jar:1.20.4:test [WARNING] org.testcontainers:r2dbc:jar:1.20.4:test Si mwen retire nenpòt nan depandans sa yo, tès yo pa kouri. Ki sa ki ta nesesè pou fè analizè a travay ak pwojè Spring Boot? Ann analize analizè a. Plugin a pèmèt konfigirasyon yon lòt analizè: Espesifye analizè depandans pwojè a pou itilize (konpozan plexus wòl-sijesyon). Pa default, yo itilize maven-dependency-analyzer. Pou itilize sa a, ou dwe deklare yon depandans pou plugin sa a ki gen kòd pou analizeur a. Analizatè a dwe gen yon non wòl Plexus deklare, epi ou presize non wòl la isit la. : Kalite java.lang.String : Depi 2.2 : Obligatwa No : Pwopriyete itilizatè analyzer : Default default -- depandans: analize Nou ka kreye yon analizè jeneral ki reutilize pi wo a men li ajoute yon sèl espesifik nan Spring Boot. Konklizyon Eta aktyèl la nan analizeur Maven a pa ofri okenn benefis nan pwojè Spring Boot modèn. Kòd ki deja egziste a ouvè a konfigirasyon e menm ekstansyon. Sepandan, nou ta bezwen entegre anpil lojik Spring Boot. Pou pwojè Quarkus ak Micronaut, nou ta mande kòd devwe tou. Mwen pa konnen si li vo tan ak efò. Si ou panse li ye, mwen espere pòs blog sa a ka sèvi kòm yon analiz bonè. Pou ale pi lwen: depandans: analize Maven Depandans Analyzer Konsepsyon pwòp starter Spring Boot ou a - pati 1 Konsepsyon pwòp starter Spring Boot ou a - pati 2 Orijinèlman pibliye nan sou 9 mas 2025 A Java Geek