Ant ยังอยู่ใน“ กระแสหลัก” สำหรับ Java หรือไม่?


14

เราได้เปลี่ยนไฟล์คำสั่งแบทช์อย่างช้า ๆ (windows .bat) ซึ่งเป็นคลาสที่รวบรวมใน IDE สำหรับนักพัฒนาพร้อมกับ Ant builds ที่ครอบคลุมมากขึ้น (เช่นได้รับจาก CVS, คอมไพล์สะอาด, เก็บถาวร, อีเมล, ฯลฯ )

ฉันใช้เวลาเรียนรู้มากมาย (และแก้จุดบกพร่องปัญหา) กับ Ant ดังนั้นฉันจึงสบายใจที่จะใช้มันสำหรับงานเหล่านี้ แต่ฉันสงสัยว่ามดยังคงใช้งานได้อย่างกว้างขวางเหมือนเดิมเมื่อฉันเริ่มเรียนรู้หรือไม่ว่า "โลกได้ก้าวต่อไป" กับสิ่งใหม่กว่า (และอาจสั่นไหว) (ฉันเริ่มเห็น Maven build สิ่งของกระจายมากขึ้นซึ่งฉันไม่เคยใช้มาก่อน)

การนำเข้าคำถามนี้จริง ๆ แล้วฉันจะผลักนักพัฒนาใหม่เพื่อเรียนรู้ Antหรือไม่หรือพวกเขาควรจะเรียนรู้สิ่งอื่นเพื่อการสร้างหรือไม่

ฉันไม่เคยอยู่บนแนวโน้มเช่นกันดังนั้นจึงเป็นเรื่องดีที่จะได้ยินจากนักพัฒนา Java คนอื่น ๆ สิ่งที่พวกเขาคิดว่าเป็นเครื่องมือสร้างที่ดีที่สุดและสิ่งที่พวกเขาคิดว่านักพัฒนาใหม่ควรเรียนรู้


อ่านคำตอบทั้งหมดด้านล่างและพวกเขาก็ยอดเยี่ยมมาก! ขอบคุณสำหรับข้อมูลเชิงลึกเกี่ยวกับการปรับปรุงที่ Maven เสนอให้กับ Ant ฉันจะมองเข้าไปใน Maven
Sam Goldberg

มันเป็นโครงการน้อยมากที่ง่ายพอที่จะไม่ต้องการสคริปต์จำนวนมากสำหรับมด Maven จัดการสิ่งเหล่านี้มากมายในวิธีมาตรฐาน

Ant นั้นเป็นเชลล์สคริปต์ใน XML (และการใช้คำสั่ง Ant แทนคำสั่งเชลล์)
253751

มดเสียเวลาอย่างไม่น่าเชื่อ แม้แต่ตอนที่นกกาเหว่าแย่มากมันก็เป็นทางเลือกที่ฉลาดกว่า Ant ไม่มีวิธีการรวมเข้ากับโครงการ IDE และ Java เป็นไฟล์ขนาดใหญ่ - คุณใช้เวลา 30% ในการกระโดดจากไฟล์หนึ่งไปอีกไฟล์หนึ่ง
ไบรอันล่า

@bryanhunt: เราสิ้นสุดการใช้ Maven สำหรับโครงการใหม่ทั้งหมด อย่างไรก็ตามฉันไม่พบวิธีที่ดีสำหรับ Maven ในการสร้างแพ็คเกจการปรับใช้สำหรับแอป Java (มันดีสำหรับการคัดลอกอ้างอิงและอัปโหลด jar) โพสต์ส่วนใหญ่ที่ฉันอ่านตอบคำตอบว่าทำได้อย่างไรให้ใช้ปลั๊กอิน Ant ดังนั้นฉันจึงพบว่าฉันกำลังใช้ Ant เพื่อตัดทอนผลลัพธ์สุดท้ายจาก Maven และดูเหมือนจะทำได้ง่ายกว่าใน Ant มากกว่าการใช้ปลั๊กอิน Maven Assembly
Sam Goldberg

คำตอบ:


23

ฉันเห็นด้วยกับคนอื่น ๆ ที่นี่ดูเหมือนว่า Maven จะทำโครงการที่สำคัญที่สุดที่ฉันเคยดูมา

แม้ว่า Ant จะมีความยืดหยุ่นสูง แต่ไฟล์บิลด์ไม่ได้มาตรฐานดังนั้นเมื่อคุณย้ายไปที่โครงการหรือ บริษัท ใหม่เป้าหมายจะมีชื่อแตกต่างกัน แต่ไฟล์นั้นมีโครงสร้างที่แตกต่างกันการพึ่งพาระหว่างเป้าหมายอาจจะสร้างหรือไม่ได้เป็นต้น

ด้วย Maven คุณจะได้รับประโยชน์จากการไม่ต้องพึ่งพาไบนารี (ฉันกำลังพูดถึงโหล) ในระบบ SCM ของคุณ เครื่องมือ Java ที่ยอดเยี่ยมอื่น ๆ จำนวนมากรู้วิธีการอ่านไฟล์ Maven POM (ประโยชน์ของการสร้างมาตรฐาน) ดังนั้นเครื่องมืออย่าง IDEs สามารถตั้งค่าโครงการ Maven ได้อย่างรวดเร็วและเครื่องมือสร้างอย่าง Jenkins สามารถเรียกใช้งาน Maven builds ได้อย่างง่ายดาย


13
ฉันควรเพิ่มด้วยว่าการใช้ Maven ทำให้โครงการของเราเป็นผู้ไม่เชื่อเรื่องพระเจ้าและถ้าคุณเคยอยู่ในร้านที่มีสงคราม IDE คุณสามารถชื่นชมกับการกำจัดการต่อสู้ทางศาสนานี้!
RonU

11

ฉันทำงานกับ Ant และกับ Maven จากประสบการณ์ของฉัน Maven มีความแข็งแกร่งเหนือกว่า Ant

  • โครงการทั้งหมดที่ฉันเคยเห็น 2 หรือ 3 ปีที่ผ่านมาดูเหมือนจะใช้ maven ประมาณ 3 ปีที่ผ่านมาสิ่งนี้ทำให้ฉันสงสัยว่าเพราะรุ่น Maven ที่ใช้แล้ว (2.0.something) ดูเหมือนจะไม่น่าเชื่อถือและมีบั๊ก ถึงจุดหนึ่ง (2.1 หรือ 2.2 ฉันจำไม่ได้) maven กลายเป็นที่เชื่อถือได้และหลังจากใช้เวลาไปกับมันฉันได้เปลี่ยนความคิดของฉันเป็นตรงกันข้าม ตอนนี้ฉันค่อนข้างจะแปลกใจที่เห็นคนที่ชอบมดมากกว่าสัตว์ประหลาด

จากบันทึกเชิงบวกที่น้อยลงเกี่ยวกับ Maven ประสบการณ์ของฉันกับเอกสารของมันยังไม่ดีเท่านี้ ฉันคิดว่าฉันเห็นผลิตภัณฑ์ที่มีเอกสารเลวร้ายยิ่งกว่า Maven แต่ฉันจำไม่ได้ว่าอันไหน (ห้องสมุด CSV โบราณบางแห่ง iirc)


2
Dunno ฉันพบว่าMaven Referenceค่อนข้างดี มันไม่สมบูรณ์แบบและมีมุมที่ไม่มีเอกสารที่มืดแน่นอน แต่ยังคง IMHO ดีกว่าค่าเฉลี่ยอย่างมีนัยสำคัญ
PéterTörök

@ PéterTörök right Maven Referenceคือการปฐมพยาบาลของฉันเช่นกัน อย่างใด แต่ส่วนใหญ่ของสิ่งที่ผมกังวลที่เกิดขึ้นเหล่านี้สิ้นสุดในมุมที่มืดไม่มีเอกสาร เพื่อความแม่นยำฉันพบว่ามุมเหล่านี้ "มืด" มากกว่า "ไม่มีเอกสาร" - ฉันหมายถึงฉันรู้สึกว่ามีความรู้อยู่ที่นั่น แต่ฉันไม่สามารถถอดรหัสได้ ฉันไม่ได้โชคไม่ดี หรืออาจเป็นใบ้ หรือพวก Maven อาจจะแค่ขาดความเป็นนักเขียนที่มีเทคโนโลยีที่ดีในแก๊งของพวกเขา
ริ้น

1
ทำไมคุณถึงเคยเห็นโครงการโอเพนซอร์ซซึ่งมีนักเขียนเทคดี? ;-)
PéterTörök

@ PéterTörökจริงมาก! :) ความหรูหราของโปรเจ็กต์ OSS ยอดนิยมก็คือมีผู้เชี่ยวชาญหลายคนที่ "แทนที่" นักเขียนเอกสาร สำหรับฉันนั่นเป็นกรณีของ Maven - มีกูรูอยู่รอบตัวซึ่งฉันสามารถถามเกี่ยวกับสิ่งที่ยุ่งยากได้เสมอ
ริ้น

3

เราใช้ Maven มาหลายปีแล้ว รองรับการเขียนสคริปต์ Ant (เช่นเดียวกับ Ant รองรับ BeanShell) ดังนั้นความรู้เกี่ยวกับมดของคุณอาจยังมีประโยชน์ Maven มีประสิทธิภาพมากขึ้น แต่มีข้อกำหนดด้านโครงสร้างพื้นฐานเพิ่มเติมบางประการ (คุณจะต้องการเซิร์ฟเวอร์ Artifactory หรือ Nexus เพื่อโฮสต์การสร้างของคุณหากคุณแชร์องค์ประกอบระหว่างโครงการหลาย ๆ โครงการ) มันค่อนข้างแตกต่างจาก Ant ดังนั้นคุณจึงไม่สามารถใช้ความรู้ที่มีอยู่มากมายได้


1

ฉันคิดว่ามดตัวเองตายไปในน้ำ ต้องระบุการพึ่งพา classpath ทั้งหมดของคุณด้วยตนเอง (ขึ้นอยู่กับการตั้งค่าของคุณ) นั้นเกินไปเกินไปและผิดพลาดง่าย หากใช้ Ant ควบคู่ไปกับเครื่องมือการจัดการการพึ่งพาเช่น Ivy แล้วจะยังคงรักษาระดับพลังงานไว้และไม่จำเป็นต้องจัดการการพึ่งพาของคุณเอง

ปัญหาอื่น ๆ ที่มี Ant เมื่อเทียบกับ Maven คือการขาดมาตรฐานซึ่งได้รับการกล่าวถึงในคำตอบอื่น ๆ เมื่อย้ายจากโปรเจ็กต์ไปยังโปรเจ็กต์หรืองานต่องานหนึ่งในสิ่งที่น่ารำคาญที่สุดที่ฉันพบคือต้องเรียนรู้มาตรฐานใหม่สำหรับไฟล์ Ant ต่างๆ เป้าหมายของการประชุม Maven เกี่ยวกับการตั้งค่าหมายความว่าสองโครงการที่แตกต่างกันจะมีโครงสร้างคล้ายกันมากทำให้การเปลี่ยนระหว่างพวกเขาง่ายกว่ากับ Ant

สำหรับ Ant ยังคงเป็นกระแสหลักหรือไม่นั้นจะขึ้นอยู่กับสภาพแวดล้อมการพัฒนาที่คุณกำลังทำอยู่หากโครงการอยู่ใน บริษัท ขนาดเล็กหรือเริ่มต้นฉันคิดว่า Maven จะเป็นทางเลือกและเวลาตามธรรมชาติ เพื่อลงทุนในโครงสร้างพื้นฐานเช่น Artifactory อย่างไรก็ตาม บริษัท ขนาดใหญ่จะใช้เวลาหลายปีและลงทุนเงินเป็นจำนวนมากในโครงสร้างพื้นฐาน Ant (การกำหนดค่าการสร้างไฟล์ระดับโลก ฯลฯ ) ซึ่งจะทำให้พวกเขากระตือรือร้นที่จะย้ายออกจากเทคโนโลยีที่พวกเขาลงทุนด้วยเงินจำนวนมาก


0

Maven เพิ่มขึ้นมาหลายปีและตอนนี้ฉันต้องเรียนรู้มัน สิ่งต่าง ๆ จะเปลี่ยนแปลงอยู่เสมอและการที่จะรู้ว่ามดกำลังสูญเสียตำแหน่งมันไม่ใช่เรื่องเลวร้าย

Maven อาจจะเป็นเพียงช่วงสั้น ๆ แต่ถ้ามันทำให้งานของเราง่ายขึ้นมันก็คุ้มค่าที่จะลงทุนเพื่อเรียนรู้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.