คำถามติดแท็ก builds

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

3
ทำไมบิลด์ที่เพิ่มขึ้นใน“ make” ไม่ใช้อัลกอริทึมการแปลงแป้นพิมพ์
ผมเริ่มต้นด้วยและฉันสงสัยเกี่ยวกับเวลาที่จะใช้makemake clean เพื่อนร่วมงานคนหนึ่งบอกฉันว่างานสร้างที่เพิ่มขึ้นมาmakeนั้นขึ้นอยู่กับการประทับเวลาของไฟล์ ดังนั้นหากคุณชำระเงินไฟล์รุ่นเก่าใน VCS ของคุณมันจะมีเวลา "เก่า" และจะถูกทำเครื่องหมายว่า "ไม่จำเป็นต้องคอมไพล์ไฟล์นี้ใหม่" จากนั้นไฟล์นั้นจะไม่รวมอยู่ในบิลด์ถัดไป ตามที่เพื่อนร่วมงานเดียวกันกับที่มันจะเป็นเหตุผลที่จะใช้ make clean อย่างไรก็ตามฉันได้รับคำตอบสำหรับคำถาม "เมื่อต้องการใช้make clean" จากคำถาม StackExchange อื่น ๆ แต่คำถามอื่นของฉันคือ: ทำไมบิลด์ที่เพิ่มขึ้นโดยใช้การmakeประทับเวลาของไฟล์และไม่ใช่ SHA-1 เช่น ตัวอย่างเช่น Git แสดงให้เห็นว่าเราสามารถตรวจสอบว่ามีการแก้ไขไฟล์โดยใช้ SHA-1 หรือไม่ สำหรับปัญหาเรื่องความเร็วหรือไม่
10 builds  make 

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

1
การใช้เท็มเพลตกระบวนการสร้างบิลด์ (เวิร์กโฟลว์) สำหรับการปรับใช้
ฉันกำลังคิดถึงการใช้ TFS Build เวิร์กโฟลว์สำหรับการปรับใช้ที่ซับซ้อน เรามีบางอย่างที่อาจจำเป็นต้องปรับใช้: เว็บแอปพลิเคชันและบริการ ฐานข้อมูล รายงาน SSRS แพ็คเกจ SSIS ใครจะรู้อะไรอีก ฉันชอบความจริงที่ว่าฉันสามารถให้เวิร์กโฟลว์พารามิเตอร์พื้นฐานบางอย่างเช่นที่สร้างเพื่อปรับใช้และมันก็จะทำงาน อาจเป็นไปได้บางส่วนอาจต้องได้รับการอนุมัติจากมนุษย์และฉันรู้ว่าเวิร์กโฟลว์สามารถรองรับได้เช่นกัน ตัวอย่างคือเราอาจใช้เวิร์กโฟลว์เพื่อสร้างสคริปต์การเปลี่ยนแปลงจากโครงการฐานข้อมูล Visual Studio ของเรา แต่กลุ่ม DBA จะต้องการอนุมัติสคริปต์ก่อนที่จะรัน ฉันสนใจที่จะรู้ว่าคนอื่น ๆ เคยใช้ "งานสร้าง" สำหรับสิ่งนี้ในอดีตหรือไม่และพบปัญหาอะไรบ้าง

2
Automake - ทำอย่างไรให้ต้นไม้ต้นกำเนิดสะอาด?
ฉันมีโครงการที่ใช้ GNU autotools เพื่อสร้างตัวเอง ฉันกำลังพยายามแก้ไขเพื่อให้ autotools สร้างไฟล์ควบคุมที่ไม่ใช่เวอร์ชันทั้งหมดในไดเรกทอรีแยกต่างหากเพื่อที่ฉันจะสามารถรักษาต้นไม้ต้นกำเนิดให้สะอาดสำหรับไฟล์ชั่วคราว ใครมีความคิดวิธีการทำเช่นนี้?
10 builds 

9
แพลตฟอร์มสร้างอัตโนมัติสำหรับ. NET - ตัวเลือกที่ดีที่สุด? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา ฉันเกี่ยวข้องกับการดูแลรักษาผลงานแอปพลิเคชั่น. NET ค่อนข้างมาก นอกจากนี้ในพอร์ตโฟลิโอยังมีแอพพลิเคชั่นรุ่นเก่าที่สร้างขึ้นบนแพลตฟอร์มอื่น ๆ เช่น C ++, ECLIPS Forms ฉันมีกรอบการสร้างที่ซับซ้อนด้านบนของ NAnt ในขณะนี้ที่จัดการการสร้างสำหรับแอปพลิเคชันเหล่านี้ทั้งหมด กรอบการสร้างใช้ NAnt ในการทำสิ่งต่าง ๆ มากมาย: ดึงรหัสออกมาจากการโค่นล้มเช่นเดียวกับการสร้างแท็กในการโค่นล้ม สร้างรหัสโดยใช้ MSBuild สำหรับ. NET หรือคอมไพเลอร์อื่น ๆ สำหรับแพลตฟอร์มอื่น ๆ ดูภายในไฟล์ AssemblyInfo เพื่อเพิ่มหมายเลขรุ่น ทำการลบไฟล์บางไฟล์ที่ไม่ควรรวมอยู่ในบิลด์ / รีลีส เผยแพร่รหัสไปยังโฟลเดอร์การปรับใช้ รหัสไปรษณีย์ขึ้นเพื่อการสำรองข้อมูล ปรับใช้บริการ Windows เริ่มและหยุดพวกเขา เป็นต้น …

4
อาร์กิวเมนต์จะทำการตรวจสอบไฟล์ไบนารีอีกครั้งใน SCM
ฉันทำงานให้กับ บริษัท ที่สร้างแอปพลิเคชัน Java เป็นหลักและฉันพยายามโน้มน้าวให้ทุกคนหยุดตรวจสอบไฟล์ไบนารี่ (การอ้างอิงและผลิตภัณฑ์ขั้นสุดท้าย) ไปยัง SCM พวกเขารู้ว่ามันเป็นวิธีปฏิบัติที่ไม่ดี แต่พวกเขาคิดว่า "มันใช้งานได้" และมันก็ไม่ได้เป็นปัญหาจริงๆแม้ในขณะที่หลายคนรู้เกี่ยวกับ Maven และเครื่องมืออื่น ๆ สำหรับการสร้างนอกเหนือจาก Ant ทั้งนักเขียนบทละครและโปรแกรมเมอร์ (ประมาณ 50 คน) พร้อมที่จะรับฟังข้อโต้แย้งใด ๆ และยอมรับว่ามันเสียพื้นที่ในการสำรองข้อมูล แต่ฉันต้องการที่จะเชื่ออย่างแท้จริงเพราะการเปลี่ยนนิสัยจะต้องใช้ความพยายามอย่างมาก คุณใช้ข้อโต้แย้งอะไรเพื่อสนับสนุนการเปลี่ยนแปลง แก้ไข:โอเคมันสมเหตุสมผลแล้วที่จะแยกความแตกต่างระหว่างไฟล์ที่แทบจะไม่เปลี่ยนแปลงเช่นการพึ่งพาและการสร้างไฟล์ ถึงอย่างนั้นฉันก็ให้ความสนใจในเหตุผลต่อหลัง
10 java  builds 

1
Build-In-Source และ vs. Out-Of-Source Build
ในการพัฒนาของฉัน (เป็นหลัก C ++) ฉันได้ปฏิบัติตามการใช้งานบิลด์ที่มาจากแหล่งต่าง ๆ มานาน นั่นคือที่มาของฉันมักจะนั่งอยู่ใน/project/srcไดเรกทอรีและสร้างอาศัยอยู่ใน/project/build/bin/release, /project/build/bin/debugไดเรกทอรี ฉันทำสิ่งนี้เพราะมันทำให้ไดเรกทอรีต้นทางของฉันสะอาดจากไฟล์ระดับกลางฉันมีที่เดียวสำหรับไบนารีทั้งหมดของฉันบรรจุภัณฑ์ง่ายกว่าการทำความสะอาดง่ายขึ้นและการควบคุมเวอร์ชันทำได้ง่ายขึ้น (ฉันคิดถึงอะไรเหรอ?) ฉันกำลังสืบทอดโครงการ (ขนาดใหญ่) ในขณะนี้ที่ใช้การสร้างในแหล่งที่มา แรงจูงใจสำหรับโครงสร้างประเภทนี้คืออะไรและมีข้อดีอย่างไร? (ฉันกังวลมากที่สุดกับเหตุผลระดับวิศวกรรมกับเหตุผลส่วนตัวที่ชอบ) ฉันหวังว่า "การออกแบบซอฟต์แวร์ C ++ ขนาดใหญ่ของ Lakos" จะมีน้ำหนักอยู่ในนั้น แต่ฉันก็พลาดถ้ามันทำ

1
เหตุใด Apache จึงมีเครื่องมือสองแบบสำหรับการสร้างและการจัดการการพึ่งพา
Apache มีเครื่องมือสองแบบแยก: Apache Maven Apache Ant + Apache Ivy พวกเขาดูเหมือนจะเติมทั้งช่องเดียวกัน ฉันมีสองคำถาม: สิ่งที่เป็นไฮไลท์ของความแตกต่างที่สำคัญระหว่างสองเครื่องมือ? ฉันแน่ใจว่าบทความที่ยาวมาก ๆ สามารถเขียนได้เกี่ยวกับความแตกต่างระหว่างสองเรื่องนี้ฉันไม่ได้มองหารายละเอียดมากขนาดนั้นหรือฉันกำลังมองหาข้อโต้แย้งแบบอัตนัยในการเลือกข้อใดข้อหนึ่ง ประวัติความเป็นมาของการเขียนโปรแกรม - มันเกิดขึ้นได้อย่างไรว่า Apache พัฒนาขึ้นเพื่อสร้างเครื่องมือสองชุดที่แยกจากกันโดยสิ้นเชิง

5
เป็นไปได้หรือไม่ที่ DLLs สองตัวเกิดข้อขัดแย้งป้องกันไม่ให้โซลูชันสร้าง
แม้ว่าฉันจะมีกรณีเฉพาะ แต่ฉันก็สงสัยเกี่ยวกับสถานการณ์ทั่วไป สามารถเพิ่ม DLLs สองรายการเมื่ออ้างอิงกับโครงการ Visual C # ชนกันเพื่อป้องกันไม่ให้โซลูชันสร้างได้หรือไม่ หากเป็นกรณีนี้มีวิธีใดบ้างที่เป็นไปได้ที่จะบรรเทาปัญหานี้

4
สร้างเซิร์ฟเวอร์อย่างต่อเนื่อง (cc.net, ฮัดสัน, ไผ่, ฯลฯ ... ) ประสบการณ์การสร้างระยะไกล?
ขณะนี้เราใช้เซิร์ฟเวอร์ cc.net เพียงครั้งเดียวสำหรับกระบวนการสร้างซึ่งสร้างทั้ง. net (โดยใช้ msbuild & nant) และ java (โดยใช้ maven และ ant) CC.net ตรวจสอบการควบคุมแหล่งที่มาและทริกเกอร์การสร้างระยะไกลที่ทำงานบนเซิร์ฟเวอร์ที่แยกต่างหาก CC.net จะทำการตรวจสอบผลลัพธ์ เมื่อเราเรียกใช้งานบิลด์ระยะไกลโดยทั่วไปแล้ว: รัน nunit หรือ junit หรือสิ่งที่คล้ายกันโดยใช้ข้อมูลที่เยาะเย้ย เลือกรันสคริปต์ DB เพื่อสร้างอินสแตนซ์ฐานข้อมูลใหม่หรือกู้คืนฐานข้อมูลจากตำแหน่งที่ทราบ ใช้ซีลีเนียมหรือคล้ายกับ UI ทดสอบ รัน emma หรือ ncover เพื่อครอบคลุมรหัส สร้างระบบสำหรับสภาพแวดล้อมการปรับใช้ที่หลากหลาย (ทดสอบยอมรับผลิต) เราอาจมีการสร้างหลายครั้งในเวลาหนึ่งบาง. net และบาง java (จากทีมงานโครงการที่แตกต่างกัน) มันใช้เวลาค่อนข้างนานในการทำให้รีโมตบิลด์ทำงานเมื่อเราตั้งค่าโปรเจ็กต์ใหม่และเรารู้สึกว่าต้องมีบางสิ่งที่เหมาะกับรีโมตบิวด์มากกว่า cc.net ใครบ้างมีประสบการณ์กับการสร้างระยะไกลด้วยระบบการรวมอย่างต่อเนื่อง? ฉันไม่ต้องการรายการคุณสมบัติของเซิร์ฟเวอร์ CI ฉันรู้สึกซาบซึ้งมากขึ้นเกี่ยวกับวิธีที่คุณใช้ในหลาย ๆ ภาษาสภาพแวดล้อมของเซิร์ฟเวอร์หลายตัว
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.