ฉันต้องการโต้แย้งข้อร้องเรียนบางประการในฟอรัมนี้:
Maven คือทั้งหมดหรือไม่มีเลย หรืออย่างน้อยที่สุดเท่าที่ฉันสามารถบอกได้จากเอกสาร คุณไม่สามารถใช้ maven แทนการดรอปอินสำหรับมดได้อย่างง่ายดายและค่อยๆใช้คุณสมบัติขั้นสูงเพิ่มเติม
นี่ไม่เป็นความจริง ชัยชนะครั้งใหญ่ของ Maven คือการใช้มันเพื่อจัดการการพึ่งพาของคุณอย่างมีเหตุผลและถ้าคุณต้องการทำสิ่งนั้นใน maven และทำทุกอย่างในมดคุณก็ทำได้ วิธีการมีดังนี้
<?xml version="1.0" encoding="UTF-8"?>
<project name="foo" basedir="." xmlns:maven="antlib:org.apache.maven.artifact.ant" >
<maven:dependencies verbose="true" pathId="maven.classpath">
<maven:pom id="maven.pom" file="pom.xml" />
</maven:dependencies>
</project>
ตอนนี้คุณมีวัตถุ classpath ชื่อ 'maven.classpath' ซึ่งมีการอ้างอิง maven ทั้งหมดที่กำหนดไว้ในไฟล์ pom สิ่งที่คุณต้องมีคือใส่โถงานมด maven ในไดเรกทอรี lib ของมด
Maven ทำให้กระบวนการสร้างของคุณขึ้นอยู่กับการเชื่อมต่อเครือข่ายของคุณ
การอ้างอิงเริ่มต้นและกระบวนการดึงข้อมูลปลั๊กอินขึ้นอยู่กับการเชื่อมต่อเครือข่ายใช่ แต่สำหรับการสร้างเริ่มต้นเท่านั้น (หรือถ้าคุณเปลี่ยนการอ้างอิงหรือปลั๊กอินที่ใช้) หลังจากนั้นไหทั้งหมดจะถูกแคชไว้ในเครื่อง และหากคุณต้องการบังคับให้ไม่มีการเชื่อมต่อเครือข่ายคุณสามารถบอกให้ maven ใช้โหมดออฟไลน์ได้
มันกำหนดโครงสร้างที่เข้มงวดกับคุณตั้งแต่เริ่มต้น
ยังไม่ชัดเจนว่านี่หมายถึงรูปแบบไฟล์หรือปัญหา "การประชุมเทียบกับการกำหนดค่า" อย่างหลังนี้มีค่าเริ่มต้นที่มองไม่เห็นจำนวนมากเช่นตำแหน่งที่คาดไว้ของไฟล์ซอร์ส java และทรัพยากรหรือความเข้ากันได้ของซอร์ส แต่นี่ไม่ใช่ความเข้มงวด แต่เป็นการวางค่าเริ่มต้นที่สมเหตุสมผลสำหรับคุณดังนั้นคุณจึงไม่จำเป็นต้องกำหนดให้ชัดเจน การตั้งค่าทั้งหมดสามารถลบล้างได้อย่างง่ายดาย (แม้ว่าสำหรับผู้เริ่มต้นจะพบได้ยากในเอกสารวิธีการเปลี่ยนแปลงบางอย่าง)
หากคุณกำลังพูดถึงรูปแบบไฟล์ก็จะกล่าวถึงการตอบสนองในส่วนถัดไป ...
เป็นแบบ XML ดังนั้นจึงยากที่จะอ่านเช่นเดียวกับ ANT
ก่อนอื่นฉันไม่เห็นว่าคุณจะบ่นได้อย่างไรว่าบางแง่มุมของบางสิ่งบางอย่าง 'ไม่ดีไปกว่ามด' เป็นเหตุผลที่มีตัวแทนที่ไม่ดี ประการที่สองในขณะที่มันยังคง XML, รูปแบบของ XML ที่มีมากชัดเจนยิ่งขึ้น นอกจากนี้เนื่องจากมีการกำหนดไว้อย่างนั้นจึงง่ายกว่ามากในการสร้างโปรแกรมแก้ไขไคลเอนต์แบบหนาที่เหมาะสมสำหรับ POM ฉันเคยเห็นหน้าสคริปต์สร้างมดยาว ๆ ที่กระโดดไปทั่วทุกที่ โปรแกรมแก้ไขสคริปต์สร้างมดใด ๆ จะไม่ทำให้สิ่งนั้นถูกปากอีกต่อไปเพียงแค่รายการงานที่เชื่อมต่อกันจำนวนมากซึ่งนำเสนอในลักษณะที่แตกต่างกันเล็กน้อย
ต้องบอกว่ามีข้อร้องเรียนบางประการที่ฉันเคยเห็นที่นี่ว่ามีหรือมีชีวิตอยู่บ้างสิ่งมีชีวิตที่ใหญ่ที่สุด
- เอกสารไม่ดี / ขาดหาย
- สร้างซ้ำได้
- การรวม Eclipse ไม่ดี
- บัก
ซึ่งคำตอบของฉันเป็นสองเท่า ประการแรก Maven เป็นเครื่องมือที่อายุน้อยกว่า Ant หรือ Make ดังนั้นคุณต้องคาดหวังว่าจะต้องใช้เวลาในการเข้าถึงระดับวุฒิภาวะของแอปพลิเคชันเหล่านั้น ประการที่สองคือดีถ้าคุณไม่ชอบมันแก้ไขได้ มันเป็นโครงการโอเพ่นซอร์สและใช้มันแล้วบ่นเกี่ยวกับบางสิ่งบางอย่างที่ใคร ๆ ก็สามารถมีส่วนช่วยในการแก้ไขได้ดูเหมือนจะไม่เหมาะกับฉัน ไม่ชอบเอกสาร? มีส่วนร่วมเพื่อให้ชัดเจนสมบูรณ์ยิ่งขึ้นหรือเข้าถึงได้มากขึ้นสำหรับผู้เริ่มต้น
ปัญหาการสร้างที่ทำซ้ำได้แบ่งออกเป็นสองปัญหาช่วงเวอร์ชันและการอัปเดตปลั๊กอิน maven อัตโนมัติ สำหรับปลั๊กอินอัปเดตเว้นแต่คุณจะแน่ใจว่าเมื่อคุณสร้างโครงการใหม่ในอีกหนึ่งปีต่อมาว่าคุณใช้ JDK เดียวกันและ Ant เวอร์ชันเดียวกันแน่นอนนี่เป็นเพียงปัญหาเดียวกันกับชื่ออื่น สำหรับช่วงเวอร์ชันฉันขอแนะนำให้ใช้ปลั๊กอินที่จะสร้าง pom ชั่วคราวพร้อมกับเวอร์ชันที่ถูกล็อกสำหรับการอ้างอิงโดยตรงและการส่งผ่านข้อมูลทั้งหมดและทำให้เป็นส่วนหนึ่งของวงจรการเผยแพร่ maven ด้วยวิธีนี้รุ่นบิวด์ปอมรุ่นของคุณจะเป็นคำอธิบายที่แน่นอนของการอ้างอิงทั้งหมดเสมอ