ฉันควรเก็บไฟล์โปรเจ็กต์เช่น. project, .classpath, .settings ของ Eclipse ภายใต้การควบคุมเวอร์ชัน (เช่น Subversion, GitHub, CVS, Mercurial ฯลฯ ) หรือไม่
ฉันควรเก็บไฟล์โปรเจ็กต์เช่น. project, .classpath, .settings ของ Eclipse ภายใต้การควบคุมเวอร์ชัน (เช่น Subversion, GitHub, CVS, Mercurial ฯลฯ ) หรือไม่
คำตอบ:
คุณไม่ต้องการเก็บไว้ในการควบคุมเวอร์ชันไฟล์ตั้งค่าพกพาใด ๆ ,
ความหมาย:
ไฟล์ใด ๆ ที่ไม่มีเส้นทางที่แน่นอนในนั้น
ซึ่งรวมถึง:
กฎง่ายๆสำหรับฉัน:
คุณต้องสามารถโหลดโปรเจ็กต์ลงในพื้นที่ทำงานและมีทุกสิ่งที่คุณต้องการเพื่อตั้งค่าใน IDE ของคุณอย่างถูกต้องและดำเนินการในไม่กี่นาที
ไม่มีเอกสารเพิ่มเติมหน้าวิกิให้อ่านหรืออะไรเลย
โหลดขึ้นตั้งค่าไป
ไฟล์. project และ. classpath ใช่ อย่างไรก็ตามเราไม่เก็บการตั้งค่า IDE ไว้ในการควบคุมเวอร์ชัน มีปลั๊กอินบางตัวที่ทำงานได้ไม่ดีในการตั้งค่าต่อเนื่องและเราพบว่าการตั้งค่าบางอย่างไม่สามารถพกพาได้จากเครื่อง dev เครื่องหนึ่งไปยังอีก ดังนั้นเราจึงมีหน้า Wiki แทนซึ่งเน้นขั้นตอนที่จำเป็นสำหรับนักพัฒนาในการตั้งค่า IDE
นี่คือสิ่งที่ฉันคิดว่าเป็นไฟล์ที่สร้างขึ้นและด้วยเหตุนี้ฉันจึงไม่เคยวางไว้ภายใต้การควบคุมเวอร์ชัน ซึ่งอาจแตกต่างกันไปในแต่ละเครื่องและผู้พัฒนาไปจนถึงผู้พัฒนาตัวอย่างเช่นเมื่อผู้ใช้ติดตั้งปลั๊กอิน Eclipse ต่างกัน
แต่ฉันใช้เครื่องมือสร้าง (Maven) ที่สามารถสร้างเวอร์ชันเริ่มต้นของไฟล์เหล่านี้เมื่อคุณทำการชำระเงินใหม่
ฉันขาดระหว่างสองตัวเลือกที่นี่
ในแง่หนึ่งฉันคิดว่าทุกคนควรมีอิสระที่จะใช้ชุดเครื่องมือสำหรับการพัฒนาที่พวกเขามีประสิทธิผลมากที่สุดตราบใดที่ซอร์สอาร์ติแฟกต์ทั้งหมดถูกเก็บไว้ในการควบคุมเวอร์ชันและสคริปต์การสร้าง (เช่น ANT หรือ Maven) ทำให้มั่นใจได้ว่าเป็นไปตามมาตรฐานโดย การระบุว่าจะใช้ JDK เวอร์ชันใดซึ่งไลบรารีของบุคคลที่สามจะขึ้นอยู่กับการรันการตรวจสอบรูปแบบ (เช่น checkstyle) และการทดสอบหน่วยเป็นต้น
ในทางกลับกันฉันคิดว่าหลาย ๆ คนใช้เครื่องมือเดียวกัน (เช่น Eclipse) และบ่อยครั้งมันจะดีกว่ามากที่จะมีบางสิ่งที่เป็นมาตรฐานในเวลาออกแบบแทนที่จะใช้เวลาสร้างตัวอย่างเช่น Checkstyle มีประโยชน์มากกว่าในฐานะปลั๊กอิน Eclipse มากกว่า งาน ANT หรือ Maven - เป็นการดีกว่าที่จะสร้างมาตรฐานให้กับชุดเครื่องมือการพัฒนาและชุดปลั๊กอินทั่วไป
ฉันทำงานในโปรเจ็กต์ที่ทุกคนใช้ JDK เดียวกันเวอร์ชันเดียวกันของ Maven เวอร์ชันเดียวกันของ Eclipse ปลั๊กอิน Eclipse ชุดเดียวกันและไฟล์คอนฟิกูเรชันเดียวกัน (เช่นโปรไฟล์ Checkstyle กฎการจัดรูปแบบโค้ดเป็นต้น) สิ่งเหล่านี้ถูกเก็บไว้ในการควบคุมแหล่งที่มา - .project, .classpath และทุกอย่างในโฟลเดอร์. settings มันทำให้ชีวิตง่ายมากในช่วงเริ่มต้นของโครงการเมื่อผู้คนปรับเปลี่ยนการพึ่งพาหรือกระบวนการสร้างอย่างต่อเนื่อง นอกจากนี้ยังช่วยได้อย่างมากเมื่อเพิ่มการเริ่มต้นใหม่ในโครงการ
ในความสมดุลฉันคิดว่าหากไม่มีโอกาสเกิดสงครามศาสนามากเกินไปคุณควรสร้างมาตรฐานของชุดเครื่องมือพัฒนาและปลั๊กอินพื้นฐานและตรวจสอบให้แน่ใจว่าเวอร์ชันสอดคล้องกับสคริปต์การสร้างของคุณ (ตัวอย่างเช่นโดยระบุเวอร์ชัน Java อย่างชัดเจน) อย่าคิดว่าการจัดเก็บ JDK และการติดตั้ง Eclipse ในซอร์สคอนโทรลจะมีประโยชน์มาก สิ่งอื่น ๆ ที่ไม่ใช่อาร์ติแฟกต์ที่ได้รับรวมถึงไฟล์โปรเจ็กต์การกำหนดค่าและค่ากำหนดปลั๊กอิน (โดยเฉพาะโค้ดฟอร์แมตเตอร์และกฎสไตล์) ควรเข้าสู่การควบคุมแหล่งที่มา
ป.ล. หากคุณใช้ Maven มีข้อโต้แย้งในการบอกว่าไฟล์. project และ. classpath เป็นสิ่งประดิษฐ์ที่ได้รับมา สิ่งนี้จะเป็นจริงก็ต่อเมื่อคุณสร้างมันทุกครั้งที่คุณสร้างและถ้าคุณไม่เคยต้องปรับแต่งด้วยมือ (หรือเปลี่ยนโดยไม่ได้ตั้งใจโดยเปลี่ยนการตั้งค่าบางอย่าง) หลังจากสร้างจาก POM
ไม่เพราะฉันใช้เฉพาะไฟล์ควบคุมเวอร์ชันที่จำเป็นในการสร้างซอฟต์แวร์ นอกจากนี้นักพัฒนาแต่ละรายอาจมีการตั้งค่าเฉพาะโครงการของตนเอง
ไม่ฉันเป็นผู้ใช้Mavenจำนวนมากและใช้Q สำหรับ Eclipseปลั๊กอินที่สร้างและอัปเดต. project และ. classpath สำหรับสิ่งอื่น ๆ เช่นการตั้งค่าปลั๊กอินฉันมักจะพูดถึง README หรือ Wiki-page เกี่ยวกับเรื่องนั้น
นอกจากนี้สิ่งที่ฉันทำงานด้วยนั้นชอบ IDE อื่น ๆ เพียงแค่ใช้ปลั๊กอิน Maven เพื่อสร้างไฟล์ที่จำเป็นเพื่อให้ IDE (และตัวเอง) มีความสุข
ฉันคิดว่านี่เป็นความคิดเห็นทั้งหมด - แต่แนวทางปฏิบัติที่ดีที่สุดในช่วงหลายปีที่ผ่านมาระบุว่าไม่ควรจัดเก็บไฟล์เฉพาะสำหรับ IDE ที่ระบุไว้ในการควบคุมแหล่งที่มาเว้นแต่ทั้งองค์กรของคุณจะได้รับมาตรฐานใน IDE เดียวและคุณไม่เคยมีเจตนาที่จะเปลี่ยน
ไม่ว่าจะด้วยวิธีใดคุณไม่ต้องการเก็บการตั้งค่าของผู้ใช้ไว้อย่างแน่นอนและ. project อาจมีการตั้งค่าที่เฉพาะเจาะจงสำหรับนักพัฒนาซอฟต์แวร์
ฉันแนะนำให้ใช้บางอย่างเช่น Maven หรือ Ant เป็นระบบสร้างมาตรฐาน นักพัฒนาทุกคนสามารถรับ classpath ที่กำหนดค่าไว้ใน IDE ได้ภายในไม่กี่วินาที
แม้ว่าโดยทั่วไปแล้วฉันเห็นด้วยกับแนวทาง "ไม่สร้างไฟล์เวอร์ชัน" แต่เรามีปัญหากับมันและต้องเปลี่ยนกลับ
หมายเหตุ: ฉันสนใจคำตอบของ VonCเช่นกันโดยเฉพาะอย่างยิ่งเกี่ยวกับประเด็น "รับ Eclipse ภายในไม่กี่นาที" แต่มันไม่ได้ชี้ชัดสำหรับเรา
บริบทของเราคือ Eclipse + Maven โดยใช้ปลั๊กอิน m2eclipse เรามีสภาพแวดล้อมการพัฒนาร่วมกันโดยมีไดเรกทอรีร่วมกันมากที่สุด แต่บางครั้งก็เกิดขึ้นที่บางคนอาจลองใช้ปลั๊กอินหรือเปลี่ยนแปลงสิ่งเล็กน้อยในการกำหนดค่าหรือนำเข้าพื้นที่ทำงานที่สองสำหรับสาขาอื่น ...
ปัญหาของเราก็คือการสร้าง .project จะทำเมื่อนำเข้าโครงการใน Eclipse แต่จะไม่มีการปรับปรุงในทุกกรณีในภายหลัง เป็นเรื่องน่าเศร้าและอาจไม่ถาวรเนื่องจากปลั๊กอิน m2eclipse จะดีขึ้น แต่ตอนนี้มันเป็นเรื่องจริง ดังนั้นเราจึงมีการกำหนดค่าที่แตกต่างกัน สิ่งที่เรามีในวันนี้คือ: ธรรมชาติหลายอย่างถูกเพิ่มเข้าไปในหลาย ๆ โปรเจ็กต์ในบางเครื่องซึ่งก็มีพฤติกรรมที่แตกต่างกันมาก :-(
ทางออกเดียวที่เราเห็นคือเวอร์ชันไฟล์. project (เพื่อหลีกเลี่ยงความเสี่ยงเราจะทำเช่นเดียวกันสำหรับ. classpath และ. settings) ด้วยวิธีนี้เมื่อนักพัฒนาซอฟต์แวร์รายหนึ่งเปลี่ยน pom ของเธอไฟล์ในเครื่องจะได้รับการอัปเดตโดยใช้ m2eclipse ทุกไฟล์จะทำงานร่วมกันและนักพัฒนารายอื่นจะเห็นการเปลี่ยนแปลงทั้งหมด
หมายเหตุ: ในกรณีของเราเราใช้ชื่อไฟล์แบบสัมพัทธ์ดังนั้นเราจึงไม่มีปัญหาในการแชร์ไฟล์เหล่านั้น
ดังนั้นเพื่อตอบคำถามของคุณฉันตอบตกลงยอมรับไฟล์เหล่านั้น
ฉันชอบ:
ดูเหมือนว่าไฟล์โครงการเหล่านี้สามารถเปลี่ยนแปลงได้ตลอดเวลาเมื่อคุณทำงานในโครงการใช่ฉันวางไว้ภายใต้การควบคุมเวอร์ชัน
ใช่. ทุกอย่างยกเว้นสร้างผลลัพธ์
เราใช้ IntelliJ IDEA และเก็บเวอร์ชัน ".sample" ของโครงการ (.ipr) และโมดูล (.iml) ไว้ภายใต้การควบคุมเวอร์ชัน
สิ่งที่ใหญ่กว่าที่นี่คือการแบ่งปันและใช้ซ้ำมากกว่าการกำหนดเวอร์ชัน IMHO แต่ถ้าคุณจะแชร์การกำหนดค่าเหล่านี้จะมีอะไรดีไปกว่าที่เก็บข้อมูลข้างๆอย่างอื่น
ข้อดีบางประการของไฟล์โครงการที่แชร์และเวอร์ชัน:
โปรดทราบว่าใน IDEA ไฟล์เหล่านี้มีการกำหนดค่าต่างๆเช่น dirs "source" และ "test source" คืออะไร; ทุกอย่างเกี่ยวกับการอ้างอิงภายนอก (ที่ตั้งของขวดไลบรารีรวมถึงแหล่งที่เกี่ยวข้องหรือ javadocs) ตัวเลือกการสร้าง ฯลฯ นี่คือสิ่งที่ไม่แตกต่างกันไปในแต่ละนักพัฒนาซอฟต์แวร์ (ฉันไม่เห็นด้วยกับสิ่งนี้อย่างมาก) IDEA จัดเก็บการตั้งค่า IDE ส่วนบุคคลเพิ่มเติมไว้ที่อื่นตลอดจนการกำหนดค่าปลั๊กอิน (ฉันไม่รู้จัก Eclipse นั่นดีนี่อาจจะแตกต่างกันหรือไม่ก็ได้)
ฉันเห็นด้วยกับคำตอบนี้ที่ระบุว่า:
คุณต้องสามารถโหลดโปรเจ็กต์ลงในพื้นที่ทำงานและมีทุกสิ่งที่คุณต้องการเพื่อตั้งค่าใน IDE ของคุณอย่างถูกต้องและดำเนินการได้ในไม่กี่นาที [... ] โหลดขึ้นตั้งค่าไป
และเรามีแบบนี้ขอบคุณไฟล์โปรเจ็กต์เวอร์ชัน