بنابراین شما می خواهید بدانید که نسخه وابستگی maven شما از کجا آمده است؟

شما با یک پروژه پیچیده Maven کار می کنید. این یک واقعیت است ، در غیر این صورت شما در اینجا نخواهید بود ، و در جستجوی کشف راهی برای خروج از پیچ و خم وابستگی های آن هستید.
پروژه شما احتمالاً دارای parent
، به عنوان شما parent
همچنین ممکن است یکی داشته باشد.
شما ممکن است داشته باشید boms
در مدیریت وابستگی خود ، اما شما parent
مطمئناً یکی هم دارد.
شما تعریف کردید properties
، و حدس بزنید که چه چیزی ، بنابراین حداقل ده ها وابستگی مستقیم یا گذرا داشته باشید.
بنابراین پس از انجام تحقیق ، شما به برخی از دستگیره ها از هر دستیار هوش مصنوعی که معمولاً استفاده می کنید ، تکیه نکنید ، در مورد:
mvn dependency:tree
در حالی که این یک کنسول خوب به شما می دهد ، احتمالاً کافی نیست. باز هم ، اگر اینگونه بود ، اینجا نخواهید بود.
این نسخه وابستگی مورد استفاده را به شما می گوید ، جایی که آنها از آن بیرون کشیده شده اند ، اما چرا این نسخه خاص استفاده شده هنوز هنوز نامشخص است.
بیایید بگوییم که شما یک وابستگی در جایی از خود سلسله مراتب پروژه تعریف شده به شرح زیر دارید:
org.springframework.boot
spring-boot-starter-web
${spring.boot.version}
مقدار خاصیت تعریف شده است 3.4.4
در والدین خود ، اما dependency:tree
خروجی افزونه به شما می گوید مقدار است 2.7.9
، و بنابراین شما به درستی از خود می پرسید ، چرا F … این است.
خوب فقط اتفاق می افتد که این کار به راحتی با استفاده از آن حل می شود help
افزونه:
mvn help:effective-pom -Dverbose=true
همانطور که توسط بزرگان دیده می شود ، POM شما را تف می کند maven
خود تنها مسئله این است که شانس بسیار زیاد است که بافر کنسول شما سرریز شود. اما ما باهوش تر از این هستیم.
mvn help:effective-pom -Dverbose=true | grep spring.boot.version
چیزی به شما می دهد مانند:
2.7.9 <!-- com.acme:your.exotic.dependency:17.0.18-RC3-FINAL-GA, line 253 -->
آنجا! شما آن را دارید! البته وابستگی عجیب و غریب شما مقصر است. اکنون که آن را می دانید ، رفع آن بسیار ساده تر خواهد بود. فکر نمی کنی؟