อย่ารำคาญกับแม่แบบจนกระทั่งในภายหลัง
สำหรับข้อมูลทั้งหมดที่คุณจำเป็นต้องรู้เกี่ยว Maven มีการอ่านของบางส่วนของหนังสือบนเว็บไซต์ของพวกเขา อย่างไรก็ตามนั่นเป็นเรื่องที่เกินความจริงสำหรับสิ่งที่คุณพยายามจะทำ
ในการเริ่มต้นให้วางโครงร่างแอปพลิเคชันเว็บของคุณตามโครงสร้าง Maven มาตรฐานสำหรับเว็บแอปดังนี้ (คุณไม่จำเป็นต้องใช้ Maven archetype สำหรับสิ่งนี้มันเป็นแค่โฟลเดอร์มาตรฐานจำนวนมากคุณสามารถทำได้ภายใน 2 นาที)
src/main/java
- มีรหัส Java การผลิตของคุณ
src/main/resources
- มีแหล่งข้อมูล classpath การผลิตของคุณ (เช่นบริบทของ Spring)
src/main/webapp
- (มี WEB-INF / web.xml แต่ไม่มีโฟลเดอร์ lib)
src/test/java
- มีรหัสทดสอบ Java ของคุณ
src/test/resources
- มีแหล่งข้อมูลการทดสอบของคุณ (เช่นตัวอย่างฟีด XML สำหรับการทดสอบบริการเว็บ ฯลฯ )
ปลั๊กอินพื้นฐาน
ขั้นตอนต่อไปคือการเลือกปลั๊กอิน ผู้ต้องสงสัยตามปกติคือผู้ที่สนับสนุนสะอาดรวบรวมและทรัพยากร (มาเป็นส่วนหนึ่งของ Maven แต่คุณสามารถกำหนดค่าได้) จากนั้นคุณจะได้ผู้ทดสอบหน่วย surefire และปลั๊กอินของสงคราม เพียงพอที่จะสร้างเว็บแอปพลิเคชันขั้นพื้นฐาน
ปลั๊กอินขั้นสูงเพิ่มเติม
ขั้นตอนต่อไปคือแนะนำปลั๊กอิน Findbugs และ PMD ซึ่งจะทำให้โค้ดของคุณครอบคลุมและรายงานปัญหาที่อาจเกิดขึ้นได้อย่างทั่วถึง คุณอาจต้องการมี JXR สำหรับการอ้างอิงข้ามซอร์สโค้ดรายการแท็กสำหรับการติดตามสิ่งที่ต้องทำและแท็กของ REFACTOR และอื่น ๆ เหนือสิ่งอื่นใด...
... ใช้ปลั๊กอิน Jetty สำหรับเว็บแอปพลิเคชัน
ใช้ปลั๊กอิน Jetty เพื่อเรียกใช้ไฟล์ WAR ของคุณภายใน IDE ของคุณเพื่อการดีบักอย่างง่ายดาย มันเร็วและเล็กและทำให้งานเสร็จจริงอย่างรวดเร็ว การมีท่าเทียบเรือเป็นส่วนหนึ่งของ Maven build ของคุณทำให้โครงการของคุณสามารถทดสอบบนเครื่องใดก็ได้โดยไม่จำเป็นต้องมี IDE พร้อมแผงพาเนลเซิร์ฟเวอร์ที่ซับซ้อนบางตัว นอกจากนี้ยังช่วยให้คุณประกาศการพึ่งพาไฟล์ WAR อื่น ๆ ซึ่งหมายความว่าคุณสามารถสร้างสภาพแวดล้อมการทำงานที่สมบูรณ์ซึ่งประกอบด้วยหลายเว็บแอปพลิเคชันทั้งหมดด้วยคำสั่งเดียว "mvn clean jetty: run" สิ่งนี้ทำงานได้ทุกที่และคุณยังสามารถให้ทดสอบการกำหนดค่า JNDI เพื่อให้แหล่งข้อมูล Spring-injected ของคุณทั้งหมดได้รับการกำหนดค่าจากภายนอก หากคุณรวมท่าเทียบเรือท่านี้เข้ากับหน้า HTML สาธิตมาตรฐาน (src/test/resources/demo.html
) คุณจะประหยัดเวลาได้เยอะแยะในการพัฒนาที่พยายามจะทำงานในท้องถิ่น คำสั่งเดียวและคุณทำเสร็จแล้ว ง่าย
การกำหนดค่า IDE ของคุณ
ด้วย Maven เป็นเรื่องง่ายเนื่องจากชายใหญ่ทุกคนสนับสนุน: Eclipse, Netbeans และแน่นอน Intellij โปรดส่วนตัวของฉัน เพียงแค่ชี้ IDE ของคุณไปที่ pom.xml แล้วมันจะช่วยลดการอ้างอิงที่ระบุไว้ทั้งหมดสำหรับคุณ WEB-INF/lib
ไม่มีรายละเอียดเพิ่มเติมเกี่ยวกับกับสิ ใน Eclipse คุณมักจะใช้ไฟล์ | นำเข้า ... | โครงการ Maven pom.xml
การรวมเข้ากับฮัดสัน
ก่อนติดตั้ง Hudson (เป็นเพียง webapp) จากนั้นกำหนดเป้าหมายระบบควบคุมเวอร์ชันของคุณเพื่อตรวจสอบเวอร์ชันที่เหมาะสม ขั้นตอนสุดท้ายของคุณคือกำหนดค่าเพื่อใช้ Maven ในการสร้าง เห็นได้ชัดว่า Maven จะต้องติดตั้งในเครื่องสร้างของคุณ (สมมติว่ามันแตกต่างจากเครื่องพัฒนาของคุณ)
ฮัดสันสร้างภาพรวมเท่านั้น
ให้ฮัดสันดำเนินการสร้างสแน็ปช็อตและปล่อยให้บิลด์การสร้างเป็นกระบวนการที่ทำด้วยตนเอง การใช้วิธีการนั้นจะหมายความว่านักพัฒนาซอฟต์แวร์สามารถแบ่งปันรหัสของพวกเขาได้ภายใต้การแก้ไขสแน็ปช็อต (เช่น 1.0.0-SNAPSHOT) และเฉพาะเมื่อมันสามารถผ่านงานสร้างได้จะถูกแชร์ในที่เก็บข้อมูลของทีม โดยทั่วไปแล้วฮัดสันจะดำเนินการ "การติดตั้งใหม่ทั้งหมด" แม้ว่าการรวมเป้าหมาย "ไซต์" อาจเป็นส่วนหนึ่งของกระบวนการของคุณเนื่องจากมันจะสร้างเว็บไซต์โครงการขนาดเล็กสำหรับทุกบิลด์ นักพัฒนาในทีมจะมีการสร้างภาพรวมที่อัปเดตรวมอยู่ในโครงการของพวกเขาโดยอัตโนมัติผ่านกระบวนการจัดการ Maven พึ่งพา
ฮัดสันมีปลั๊กอินมากมายที่สามารถรองรับการวัดได้ทุกรูปแบบ รายการโปรดส่วนตัวของฉันคือการติดตามจำนวนการทดสอบที่ผ่านต่อโครงการเมื่อเวลาผ่านไป เป็นเรื่องที่ดีมากที่แสดงให้เห็นถึงการจัดการว่าจำนวนการทดสอบและความครอบคลุมของหน่วยของคุณเพิ่มขึ้นเรื่อย ๆ
แนวทางการตั้งค่าทั่วไป
แยกที่เก็บของคุณออกเป็นโครงสร้างอย่างน้อยดังต่อไปนี้:
- การทำงานเป็นทีม - สิ่งประดิษฐ์ที่นำออกใช้ทั้งหมดของคุณไปที่นี่
- team-snapshot - ส่วนการพัฒนาสแน็ปช็อตทั้งหมดของคุณอยู่ที่นี่
- Third-party-release - ห้องสมุดบุคคลที่สามที่สนับสนุนของคุณทั้งหมดมาที่นี่ (เช่น Spring, Hibernate เป็นต้น)
บัญชีผู้ใช้นักพัฒนาซอฟต์แวร์ไม่สามารถเขียนไปยังที่เก็บข้อมูลของทีมไม่ว่าจะเป็นสแน็ปช็อตหรือรีลีส สิ่งนี้จะช่วยให้นักพัฒนาเลี่ยงผ่านฮัดสันได้หากพวกเขารีบและจะกลายเป็นบรรทัดฐานอย่างรวดเร็ว
ตรวจสอบให้แน่ใจว่าคุณดาวน์โหลดซอร์สลายเซ็น javadocs และ SHA สำหรับบุคคลที่สามทั้งหมดของคุณเสมอ Jarvanaเป็นนักสำรวจพื้นที่เก็บข้อมูลที่ยอดเยี่ยมสำหรับผู้ที่หาชั้นเรียนได้ยาก
พิจารณาการติดตั้งเครื่องมือจัดการพื้นที่เก็บข้อมูลเช่น Nexus หรือ Artifactory เพื่อให้สามารถควบคุมพื้นที่เก็บข้อมูลที่เพิ่มขึ้นของคุณได้ดียิ่งขึ้น