Avatar ·

ما هو Maven SNAPSHOT ولماذا هو مطلوب في مشاريع Java؟

مرحبًا بالجميع! أنا مبتدئ في Java وMaven، وأعمل على مشروع صغير أستخدم فيه مكتبة خارجية نقوم أيضًا بتطويرها بالتوازي. في ملف pom.xml، حددت تبعية بإصدار `1.0.0-SNAPSHOT`، لكن قائد فريقي قال إن هذا ليس للإنتاج، بل للتطوير فقط. لا أفهم تمامًا الفرق بين الإصدار العادي (مثل `1.0.0`) و`SNAPSHOT`. يبدو أن كلاهما إصدار. عندما أشغل `mvn clean install`، أحيانًا يشتكي Maven من أنه لا يمكنه العثور على `1.0.0-SNAPSHOT` محليًا، على الرغم من أنني قمت ببناء المكتبة للتو. وأحيانًا أخرى، يسحب إصدارًا قديمًا، على الرغم من أنني أجريت تغييرات بالفعل. اشرح لي، من فضلك، ما هو Maven SNAPSHOT بكلمات بسيطة؟ لماذا تم اختراعه؟ وكيفية العمل معه بشكل صحيح لتجنب الارتباك مع الإصدارات؟ يهمني بشكل خاص كيف يقرر Maven متى يقوم بتنزيل إصدار SNAPSHOT جديد، ومتى يستخدم الإصدار المخبأ بالفعل. مثال كود: أقوم بتوصيل مكتبة `com.example:my-lib:1.0.0-SNAPSHOT` وأريد أنه عند