ทำไมต้องเมา? มีประโยชน์อย่างไร? [ปิด]


131

ประโยชน์หลักของการใช้ maven คืออะไรเมื่อเทียบกับ ant? ดูเหมือนจะเป็นเรื่องน่ารำคาญมากกว่าเครื่องมือที่เป็นประโยชน์ ฉันใช้ maven 2 กับ Eclipse Java EE ธรรมดา (ไม่มี m2eclipse) และ tomcat

ผู้สนับสนุน maven เชื่อเช่นนั้น

  1. Maven ช่วยให้คุณได้รับการอ้างอิงแพ็คเกจของคุณได้อย่างง่ายดาย

  2. Maven บังคับให้คุณมีโครงสร้างไดเร็กทอรีมาตรฐาน

จากประสบการณ์ของฉัน

  1. การหาการอ้างอิงแพ็กเกจนั้นไม่ใช่เรื่องยาก คุณแทบไม่ได้ทำมันอยู่แล้ว อาจเป็นครั้งเดียวในระหว่างการตั้งค่าโครงการและอื่น ๆ อีกเล็กน้อยในระหว่างการอัปเกรด ด้วย maven คุณจะต้องแก้ไขการอ้างอิงที่ไม่ตรงกันปอมที่เขียนไม่ดีและทำการยกเว้นแพ็คเกจ

  2. วงจร FIX-COMPILE-DEPLOY-DEBUG ที่ช้าซึ่งฆ่าผลผลิต นี่คือหลักจับของฉัน คุณทำการเปลี่ยนแปลงคุณต้องรอให้ maven build เริ่มใช้งานและรอให้มันปรับใช้ ไม่มีการใช้งานที่ร้อนแรง แต่อย่างใด

หรือฉันแค่ทำมันผิด? โปรดชี้ทางที่ถูกต้องให้ฉันฟัง


1
ฉันสนใจประเด็นที่ 2 จริงๆมีใครสังเกตเห็นวงจรการแก้ไขคอมไพล์ - ปรับใช้ที่ช้าหรือไม่ หรือทุกคนรู้จัก แต่เงียบ ๆ เกี่ยวกับเรื่องนี้เนื่องจาก maven เป็นสิ่งที่ดีที่สุดที่เรามี / สิ่งที่ธรรมดาที่สุด / เจ๋งที่สุด การสร้างสงคราม / หูเพื่อปรับใช้นั้นไม่ดีพอ maven ทำให้แย่ลง เครื่องของฉันใช้เวลาประมาณ 5 วินาทีในการดูการเปลี่ยนแปลง jsp ในโครงการ maven บนโครงสร้างไดเร็กทอรีที่ระเบิดหรือไม่ น้อยกว่า 1 วินาที ฉันสามารถบันทึกได้หลายครั้งและรวบรวมเฉพาะการเปลี่ยนแปลงล่าสุดบน maven? ทุกการบันทึกจะทริกเกอร์บิลด์
trix

บางที maven ไม่ใช่ปัญหาที่นี่ แต่ IDE รองรับ / ปลั๊กอิน? อย่างไรก็ตาม maven อยู่มาระยะหนึ่งแล้วถ้าเราไม่สามารถทำให้ถูกต้องเราควรย้าย / ประดิษฐ์ / เสนออย่างอื่นหรือไม่? นอกจาก Ivy
trix

2
@Javid แม้ว่าชื่อของคำถามจะดูคล้ายกัน แต่เนื้อหาของคำถามก็เป็น IMO ที่แตกต่างกันและฉันไม่คิดว่ามันเป็นการหลอกลวง
Pascal Thivent


วินาทีนั้นฟังดูเหมือนคุณกำลังพูดถึง NuGet ...
micahhoover

คำตอบ:


108

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

ไม่ยาก ... สำหรับโครงการของเล่น แต่โปรเจ็กต์ที่ฉันทำงานอยู่มีมากมายหลายโปรเจ็กต์และฉันดีใจมากที่ได้รับสกรรมกริยาเพื่อให้มีรูปแบบการตั้งชื่อที่เป็นมาตรฐานสำหรับพวกเขา การจัดการทั้งหมดนี้ด้วยมือจะเป็นฝันร้าย

และใช่บางครั้งคุณต้องทำงานกับการบรรจบกันของการอ้างอิง แต่ลองคิดดูสองครั้งสิ่งนี้ไม่ได้มีมาจาก Maven ซึ่งมีอยู่ในระบบใด ๆ ที่ใช้การอ้างอิง (และฉันกำลังพูดถึงการอ้างอิง Java โดยทั่วไปที่นี่)

ดังนั้นด้วย Ant คุณต้องทำงานเดียวกันยกเว้นว่าคุณต้องทำทุกอย่างด้วยตนเอง: คว้าบางเวอร์ชันของโครงการ A และการอ้างอิงจากนั้นคว้าเวอร์ชันของโครงการ B และการอ้างอิงบางเวอร์ชันค้นหาตัวเองว่าพวกเขาใช้เวอร์ชันใดกันแน่ตรวจสอบ ไม่ทับซ้อนกันตรวจสอบว่าเข้ากันไม่ได้ ฯลฯ ยินดีต้อนรับสู่นรก

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

และอย่าลืมว่าการจัดการการพึ่งพาเป็นเพียงส่วนเล็ก ๆ ของสิ่งที่ Maven นำเสนอยังมีอีกมากมาย (ไม่ได้กล่าวถึงเครื่องมืออื่น ๆ ที่รวมเข้ากับ Maven ได้เป็นอย่างดีเช่นSonar )

วงจร FIX-COMPILE-DEPLOY-DEBUG ที่ช้าซึ่งฆ่าผลผลิต นี่คือหลักจับของฉัน คุณทำการเปลี่ยนแปลงคุณต้องรอให้ maven build เริ่มใช้งานและรอให้มันปรับใช้ ไม่มีการใช้งานที่ร้อนแรง แต่อย่างใด

อย่างแรกทำไมคุณถึงใช้ Maven แบบนี้? ฉันไม่. ฉันใช้ IDE ของฉันเพื่อเขียนการทดสอบโค้ดจนกว่าจะผ่าน refactor ปรับใช้ hot deploy และรันบิลด์ Maven ในเครื่องเมื่อฉันทำเสร็จก่อนที่จะคอมมิตเพื่อให้แน่ใจว่าฉันจะไม่ทำลายบิวด์ต่อเนื่อง

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

ในตอนท้ายและฉันขอโทษที่ต้องพูดเช่นนั้นไม่ใช่ Maven จริงๆที่กำลังฆ่าประสิทธิภาพการทำงานของคุณคุณใช้เครื่องมือของคุณในทางที่ผิด และถ้าคุณไม่พอใจกับมันฉันจะพูดอะไรไม่ใช้มัน โดยส่วนตัวแล้วฉันใช้ Maven มาตั้งแต่ปี 2546 และไม่เคยมองย้อนกลับไป


@ ปาสคาลบอกได้ไหมว่าใช้เครื่องมืออะไร? IDE ปลั๊กอิน ฯลฯ คุณกำลังบอกเราว่าถ้าฉันเปลี่ยนไฟล์. คุณสมบัติหรือไฟล์ jsp สิ่งนี้จะถูกปรับใช้โดยไม่ต้องสร้าง maven? (บางทีการปรับใช้แบบร้อนไม่ใช่คำที่ถูกต้องที่นี่) ฉันไม่ชัดเจนว่าฉันหมายถึงอะไรกับมด ฉันหมายถึงการใช้ไดเร็กทอรีระเบิดมาตรฐานระหว่างการพัฒนาและใช้มดเพื่อสร้างสงคราม / หูก่อนปล่อย สำหรับไดเร็กทอรีที่ระเบิดกฎนั้นง่ายมากให้คัดลอก / คอมไพล์ไฟล์จาก src ไปยังคลาสและอย่าแตะส่วนที่เหลือ
trix

ต่อ ... อย่างไรก็ตามในโครงการของฉันสิ่งที่นำไปใช้กับแมวตัวผู้คือกระปุกของโมดูล ถ้าฉันเปลี่ยน. jsp, maven ไม่ต้องสร้างไหเหล่านั้นขึ้นมาใหม่หรือ?
trix

4
คุณต้องยอมรับว่าโครงการส่วนใหญ่เป็นโครงการของเล่นหรือที่เรียกว่าการพึ่งพาง่าย ๆ นั่นเป็นเพียงกฎแห่งสถิติ
trix

2
@trix เกี่ยวกับการใช้งานแบบ hot vs. maven: ถ้าคุณไม่ได้ทำ ant build สำหรับ hot deployment ทำไมคุณถึงใช้ Maven เหมือนกัน? ฉันเดาว่าถ้าคุณใช้มดเหมือนกันมันจะต้องใช้เวลาอย่างน้อยเท่ากัน ... ไม่ใช่เหรอ?
Reddy

2
ดังนั้น Pascal คุณช่วยพูดกับเราได้ไหมว่าคุณมีโครงการที่กำหนดค่าเป็น Maven nature และไม่ใช้กระบวนการ build เพื่อปรับใช้ได้อย่างไร? นี่คือประเด็นที่ 2 ของคำถามเริ่มต้น ฉันสงสัยว่าต้องทำอย่างไรจึงขอขอบคุณเป็นอย่างยิ่งหากคุณสามารถให้คำอธิบายที่ชัดเจนกับเราได้

20

Maven ถือได้ว่าเป็นเครื่องมือในการพัฒนาโครงการที่สมบูรณ์ไม่ใช่แค่สร้างเครื่องมือเช่น Ant คุณควรใช้Eclipse IDE กับปลั๊กอิน mavenเพื่อแก้ไขปัญหาทั้งหมดของคุณ

นี่คือข้อดีบางประการของ Maven ซึ่งยกมาจากประโยชน์ของการใช้หน้าMaven :

เฮนนิ่ง

  • ตั้งค่าโครงการอย่างรวดเร็วไม่มีไฟล์ build.xml ที่ซับซ้อนเพียงแค่ POM แล้วไป
  • นักพัฒนาทั้งหมดในโปรเจ็กต์ใช้การอ้างอิง jar เดียวกันเนื่องจาก POM รวมศูนย์
  • รับรายงานและเมตริกจำนวนมากสำหรับโครงการ "ฟรี"
  • ลดขนาดของการแจกแจงซอร์สเนื่องจากสามารถดึงไหจากจุดศูนย์กลางได้

Emmanuel Venisse

  • มีเป้าหมายมากมายดังนั้นจึงไม่จำเป็นต้องพัฒนาบางส่วนของกระบวนการสร้างเฉพาะที่ตรงกันข้ามกับ ANT เราสามารถใช้งาน ANT ที่มีอยู่ซ้ำในกระบวนการสร้างด้วยปลั๊กอิน antrun

Jesse Mcconnell

  • ส่งเสริมการออกแบบโค้ดแบบแยกส่วน ด้วยการทำให้ง่ายในการจัดการโครงการหลายส่วนจะช่วยให้สามารถจัดวางการออกแบบเป็นชิ้นส่วนเชิงตรรกะหลาย ๆ ส่วนได้โดยการถักทอชิ้นส่วนเหล่านี้เข้าด้วยกันโดยใช้การติดตามการพึ่งพาในไฟล์ pom
  • บังคับใช้การออกแบบโค้ดแบบแยกส่วน เป็นเรื่องง่ายที่จะจ่าย lipervice ให้กับรหัสโมดูลาร์ แต่เมื่อรหัสอยู่ในโครงการรวบรวมแยกกันมันเป็นไปไม่ได้ที่จะข้ามการอ้างอิงระหว่างโมดูลของรหัสเว้นแต่คุณจะอนุญาตโดยเฉพาะในการจัดการการพึ่งพาของคุณ ... ไม่มี 'ฉันจะ เพียงทำสิ่งนี้ตอนนี้และแก้ไขในภายหลัง 'การนำไปใช้งาน
  • มีการประกาศการจัดการการพึ่งพาอย่างชัดเจน ด้วยกลไกการจัดการการพึ่งพาคุณต้องพยายามทำให้การกำหนดเวอร์ชันโถของคุณเสียหาย ... ไม่มีปัญหาคลาสสิกของ 'โถผู้ขายรุ่นนี้เป็นรุ่นใด' และการตั้งค่าในโปรเจ็กต์ที่มีอยู่จะฉีกส่วนบนสุดของความยุ่งเหยิงที่มีอยู่หากมีอยู่เมื่อคุณถูกบังคับให้สร้างเวอร์ชัน 'ไม่รู้จัก' ในที่เก็บของคุณเพื่อให้สิ่งต่าง ๆ เริ่มทำงาน ... นั่นหรือโกหกตัวเองว่าคุณรู้ เวอร์ชันจริงของ ABC.jar
  • วงจรชีวิตที่พิมพ์อย่างรัดกุมมีวงจรชีวิตที่กำหนดไว้อย่างชัดเจนซึ่งระบบซอฟต์แวร์จะดำเนินการตั้งแต่เริ่มสร้างจนถึงจุดสิ้นสุด ... และผู้ใช้จะได้รับอนุญาตให้ผสมและจับคู่ระบบของตนกับวงจรชีวิตแทนการปูพื้นด้วยวงจรชีวิตของตนเอง สิ่งนี้มีประโยชน์เพิ่มเติมในการอนุญาตให้ผู้คนย้ายจากโครงการหนึ่งไปยังอีกโครงการหนึ่งและพูดโดยใช้คำศัพท์เดียวกันในแง่ของการสร้างซอฟต์แวร์

Vincent Massol

  • โมเมนตัมที่มากขึ้น: Ant เป็นมรดกตกทอดและไม่ได้ก้าวไปข้างหน้าอย่างรวดเร็ว Maven กำลังก้าวไปข้างหน้าอย่างรวดเร็วและมีศักยภาพในการมีเครื่องมือมูลค่าสูงมากมายรอบ ๆ Maven (CI, โครงการแดชบอร์ด, การรวม IDE ฯลฯ )

5
ในขณะที่ลงคะแนนโปรดระบุเหตุผลที่ไม่ได้กล่าวไว้ แต่กฎทางจริยธรรมเกี่ยวกับ stackoverflow
YoK

1
การอ้างอิงไม่มีอะไรผิดพลาด แต่คุณต้องทำให้ชัดเจนว่าเนื้อหานั้นไม่ใช่ของคุณ
Pascal Thivent

ขอบคุณ ฉันจะตรวจสอบให้แน่ใจว่าฉันอ้างถึงนอกเหนือจากการพูดถึงว่าอ้างอิงจากที่ใด แค่ 30 วันแปลก ๆ ที่ stackoverflow และยังคงเรียนรู้ศิลปะ :)
YoK

11

การหาการอ้างอิงสำหรับโครงการขนาดเล็กไม่ใช่เรื่องยาก แต่เมื่อคุณเริ่มจัดการกับแผนผังการพึ่งพาที่มีการอ้างอิงหลายร้อยรายการสิ่งต่างๆก็จะหลุดมือไปอย่างง่ายดาย (ฉันพูดจากประสบการณ์ที่นี่ ... )

อีกประเด็นหนึ่งคือถ้าคุณใช้ IDE ที่มีการคอมไพล์เพิ่มขึ้นและรองรับ Maven (เช่น Eclipse + m2eclipse) คุณควรจะสามารถตั้งค่าแก้ไข / คอมไพล์ / hot deploy และทดสอบได้

โดยส่วนตัวแล้วฉันไม่ทำเช่นนี้เพราะฉันรู้สึกไม่ไว้วางใจโหมดการพัฒนานี้เนื่องจากประสบการณ์ที่ไม่ดีในอดีต (ก่อน Maven) บางทีอาจมีคนแสดงความคิดเห็นว่าสิ่งนี้ใช้ได้กับ Eclipse + m2eclipse หรือไม่


เราสามารถเริ่มต้นด้วย maven เพื่อรับการอ้างอิงทั้งหมดจากนั้นคัดลอกการอ้างอิงไปยังโครงการของเขาใช่ไหม
trix

2
ฉันคิดว่าคุณทำได้ แต่อาจมีความเสียหายหากคุณอัปเดตการอ้างอิงของโครงการของคุณ ... หรือหากโครงการของคุณขึ้นอยู่กับภาพรวม
Stephen C

ฉันหมายถึงมี 2 โครงการจุดประสงค์เดียวของโครงการ maven คือการได้รับการอ้างอิง ใช้การควบคุมเวอร์ชันเพื่อติดตามการเปลี่ยนแปลงระหว่างการอัปเดตการอ้างอิง ฉันทำสิ่งนี้ต่อไปเพื่อที่ฉันจะได้เห็นการเปลี่ยนแปลงในกรณีที่งานสร้างของฉันพัง
trix

4
อุ๊บ นั่นไม่ใช่วิธีที่ Maven ออกแบบมาให้ใช้ ข้อดีอย่างหนึ่งของ Maven คือการหลีกเลี่ยงการตรวจสอบไลบรารีที่ขึ้นอยู่กับการควบคุมเวอร์ชัน ด้วยวิธีการของคุณคุณจะทำให้ VCS ของคุณยุ่งเหยิงด้วยไฟล์ไบนารีจำนวนมากหลายเวอร์ชัน และ VCS บางตัวก็ไม่ดีในการจัดการไฟล์ไบนารี
Stephen C

2
โดยทั่วไปคุณจะเรียนรู้วิธีที่ยากลำบากในการเบื่อหน่ายเวทมนตร์ทุกประเภทเมื่อเขียนโปรแกรม: -S
Thorbjørn Ravn Andersen

9

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

การประชุมใหญ่ช่วยได้ในหลาย ๆ ที่เช่นฮัดสันที่สามารถทำสิ่งมหัศจรรย์กับโครงการของ Maven ได้ แต่ในตอนแรกอาจยากที่จะเห็น

แก้ไข: ตั้งแต่ปี 2016 Maven เป็นเครื่องมือสร้าง Java เพียงตัวเดียวที่ IDE หลักทั้งสามสามารถใช้ซอร์สได้ทันที กล่าวอีกนัยหนึ่งคือการใช้ maven ทำให้การสร้าง IDE ไม่เชื่อเรื่องพระเจ้า สิ่งนี้ช่วยให้สามารถใช้การทำโปรไฟล์ Netbeans ได้แม้ว่าคุณจะทำงานใน eclipse ตามปกติก็ตาม


1
และในทางกลับกันก็เป็นความจริงเช่นกันผู้คนจำนวนมากมาเวนด้วยความเกลียดชังแบบอุปาทานเพราะมันไม่ใช่มดเป็นต้น
Goibniu

ตรงข้าม? คุณหมายถึง?
Thorbjørn Ravn Andersen

9

ข้อดีของ Maven เหนือมดมีอยู่ไม่น้อย ฉันพยายามสรุปไว้ที่นี่

Convention over Configuration
Maven ใช้แนวทางที่โดดเด่นสำหรับโครงร่างโครงการและการเริ่มต้นซึ่งทำให้ง่ายต่อการกระโดดในโครงการ โดยปกติจะใช้เวลาเพียง checkount และคำสั่ง maven เพื่อรับอาร์ติแฟกต์ของโปรเจ็กต์

ข้อตกลงโครงการ Project Modularization
แนะนำ (หรือดีกว่าบังคับ) ให้นักพัฒนาทำการโมดูลาร์โครงการ แทนที่จะเป็นโครงการเสาหินคุณมักถูกบังคับให้แบ่งโครงการของคุณในส่วนประกอบย่อยที่เล็กลงซึ่งทำให้การดีบักและจัดการโครงสร้างโครงการโดยรวมง่ายขึ้น

การจัดการการพึ่งพาและวงจรชีวิตของโครงการ
โดยรวมแล้วด้วยการกำหนดค่า SCM ที่ดีและที่เก็บภายในการจัดการการพึ่งพานั้นค่อนข้างง่ายและคุณถูกบังคับให้คิดอีกครั้งในแง่ของ Project Lifecycle - เวอร์ชันส่วนประกอบการจัดการรุ่นและอื่น ๆ ซับซ้อนกว่ามดเล็กน้อย แต่ก็เป็นการปรับปรุงคุณภาพของโครงการอีกครั้ง

มีอะไรผิดปกติกับ maven?
มาเวนไม่ใช่เรื่องง่าย วงจรการสร้าง (สิ่งที่เสร็จสิ้นและเมื่อใด) ไม่ชัดเจนใน POM นอกจากนี้ปัญหาบางอย่างเกิดขึ้นกับคุณภาพของส่วนประกอบและการอ้างอิงที่ขาดหายไปในที่เก็บสาธารณะ
แนวทางที่ดีที่สุด (สำหรับฉัน) คือการมีที่เก็บข้อมูลภายในสำหรับการแคช (และการรักษา) การอ้างอิงรอบ ๆ และเพื่อนำไปใช้กับการจัดการรีลีสของส่วนประกอบ สำหรับโครงการที่ใหญ่กว่าโครงการตัวอย่างในหนังสือคุณจะขอบคุณ maven ก่อนหรือหลัง


6

Maven สามารถให้ประโยชน์สำหรับขั้นตอนการสร้างของคุณโดยการใช้แบบแผนและแนวทางปฏิบัติมาตรฐานเพื่อเร่งวงจรการพัฒนาของคุณในขณะเดียวกันก็ช่วยให้คุณประสบความสำเร็จในอัตราที่สูงขึ้น สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีที่ Maven สามารถช่วยคุณในกระบวนการพัฒนาของคุณได้โปรดดูที่ประโยชน์ของการใช้ Maven


3

Maven เป็นเครื่องมือการจัดการโครงการที่มีประสิทธิภาพซึ่งใช้ POM (แบบจำลองวัตถุโครงการ) ใช้สำหรับการสร้างโครงการการพึ่งพาและการจัดทำเอกสาร ทำให้กระบวนการสร้างง่ายขึ้นเช่น ANT แต่มันล้ำหน้ากว่า ANT มากเกินไป Maven ช่วยในการจัดการ - สร้างเอกสารการซ่อมแซม SCMs การเผยแพร่การแจกจ่าย - maven repository เป็นไดเร็กทอรีของไฟล์ JAR แบบแพ็กเกจที่มีไฟล์ pom.xml Maven ค้นหาการอ้างอิงในที่เก็บ


2

ฉันไม่เคยเจอจุดที่ 2? คุณสามารถอธิบายได้ไหมว่าเหตุใดคุณจึงคิดว่าสิ่งนี้มีผลต่อการปรับใช้ในทางใดทางหนึ่ง หากสิ่งใดที่ maven อนุญาตให้คุณจัดโครงสร้างโครงการของคุณด้วยวิธีโมดูลาร์ที่อนุญาตให้แก้ไขจุดบกพร่องในระดับเฉพาะได้จริงและอนุญาตให้พัฒนา API ได้อย่างอิสระจากส่วนที่เหลือของโครงการเป็นต้น

เป็นไปได้ว่าคุณพยายามยัดเยียดทุกอย่างให้เป็นโมดูลเดียวซึ่งในกรณีนี้ปัญหาไม่ได้เกิดขึ้นเลย แต่เป็นวิธีที่คุณใช้


ฉันใช้ eclipse jee, maven 2 และ tomcat เห็นได้ชัดว่าเว็บแอป ถ้าฉันเปลี่ยนไฟล์คุณสมบัติหรือ jsp เพื่อดูการเปลี่ยนแปลงของฉันใน tomcat maven ต้องสร้าง build สร้าง war / ear และปรับใช้กับ tomcat สิ่งนี้ช้าเมื่อเทียบกับถ้าฉันใช้โครงสร้างไดเร็กทอรีที่ระเบิด
trix

1
@trix Hot ปรับใช้ภายใต้ Eclipse กับ Tomcat ก็ใช้งานได้ คุณกำลังทำผิด
Pascal Thivent

0

นี่ควรเป็นความคิดเห็น แต่ความยาวของความคิดเห็นไม่เหมาะสมฉันจึงโพสต์ไว้เป็นคำตอบ

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

ฉันมีความรู้เกี่ยวกับ maven ระดับกลางเท่านั้น แต่ฉันบอกคุณว่าฉันได้ทำโครงการขนาดใหญ่ (เช่น ERP) โดยไม่ต้องใช้ maven

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