คำถามติดแท็ก build-process

ขั้นตอนการแปลงไฟล์ซอร์สโค้ดเป็นซอฟต์แวร์แบบสแตนด์อโลนที่สามารถรันบนคอมพิวเตอร์ได้

9
การสร้างและการกำหนดหมายเลขเวอร์ชันสำหรับโครงการ Java (ant, cvs, hudson)
แนวทางปฏิบัติที่ดีที่สุดในปัจจุบันสำหรับการจัดการหมายเลขรุ่นและหมายเลขเวอร์ชันอย่างเป็นระบบในโครงการ Java คืออะไร โดยเฉพาะ: วิธีจัดการหมายเลขบิลด์อย่างเป็นระบบในสภาพแวดล้อมการพัฒนาแบบกระจาย วิธีรักษาหมายเลขเวอร์ชันในซอร์ส / พร้อมใช้งานสำหรับแอปพลิเคชันรันไทม์ วิธีการรวมเข้ากับที่เก็บซอร์สอย่างถูกต้อง วิธีจัดการหมายเลขเวอร์ชันเทียบกับแท็กที่เก็บโดยอัตโนมัติ วิธีการรวมเข้ากับโครงสร้างพื้นฐานที่สร้างอย่างต่อเนื่อง มีเครื่องมือจำนวนมากที่พร้อมใช้งานและ ant (ระบบสร้างที่เราใช้) มีงานที่จะรักษาหมายเลขบิลด์ไว้ แต่ยังไม่ชัดเจนว่าจะจัดการสิ่งนี้กับนักพัฒนาหลายคนพร้อมกันโดยใช้ CVS, svn หรือที่คล้ายกันได้อย่างไร . [แก้ไข] มีคำตอบบางส่วนหรือเฉพาะเจาะจงที่ดีและเป็นประโยชน์ปรากฏอยู่ด้านล่างดังนั้นฉันจะสรุปคำตอบบางส่วน สำหรับฉันดูเหมือนจะไม่มี "แนวทางปฏิบัติที่ดีที่สุด" ที่ชัดเจนในเรื่องนี้ แต่เป็นการรวบรวมแนวคิดที่ทับซ้อนกัน ด้านล่างนี้ค้นหาบทสรุปของฉันและคำถามที่เป็นผลลัพธ์บางอย่างที่ผู้คนอาจพยายามตอบเพื่อติดตามผล [ใหม่สำหรับ stackoverflow ... โปรดแสดงความคิดเห็นหากฉันทำสิ่งนี้ผิด] หากคุณใช้ SVN การกำหนดเวอร์ชันของการชำระเงินที่เฉพาะเจาะจงจะมาพร้อมกับการโดยสาร การสร้างหมายเลขสามารถใช้ประโยชน์จากสิ่งนี้เพื่อสร้างหมายเลขบิวด์เฉพาะที่ระบุการชำระเงิน / การแก้ไขเฉพาะ [CVS ซึ่งเราใช้ด้วยเหตุผลเดิมไม่ได้ให้ข้อมูลเชิงลึกในระดับนี้มากนัก ... การแทรกแซงด้วยตนเองกับแท็กช่วยให้คุณมีส่วนร่วมได้] หากคุณใช้ maven เป็นระบบบิลด์ของคุณจะมีการสนับสนุนสำหรับการสร้างหมายเลขเวอร์ชันจาก SCM รวมถึงโมดูลรีลีสสำหรับการสร้างรีลีสโดยอัตโนมัติ [เราไม่สามารถใช้ maven ได้ด้วยเหตุผลหลายประการ แต่สิ่งนี้จะช่วยผู้ที่ทำได้ …

9
ทำไมต้องเมา? มีประโยชน์อย่างไร? [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่? อัปเดตคำถามเพื่อให้สามารถตอบพร้อมข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ประโยชน์หลักของการใช้ maven คืออะไรเมื่อเทียบกับ ant? ดูเหมือนจะเป็นเรื่องน่ารำคาญมากกว่าเครื่องมือที่เป็นประโยชน์ ฉันใช้ maven 2 กับ Eclipse Java EE ธรรมดา (ไม่มี m2eclipse) และ tomcat ผู้สนับสนุน maven เชื่อเช่นนั้น Maven ช่วยให้คุณได้รับการอ้างอิงแพ็คเกจของคุณได้อย่างง่ายดาย Maven บังคับให้คุณมีโครงสร้างไดเร็กทอรีมาตรฐาน จากประสบการณ์ของฉัน การหาการอ้างอิงแพ็กเกจนั้นไม่ใช่เรื่องยาก คุณแทบไม่ได้ทำมันอยู่แล้ว อาจเป็นครั้งเดียวในระหว่างการตั้งค่าโครงการและอื่น ๆ อีกเล็กน้อยในระหว่างการอัปเกรด ด้วย maven คุณจะต้องแก้ไขการอ้างอิงที่ไม่ตรงกันปอมที่เขียนไม่ดีและทำการยกเว้นแพ็คเกจ วงจร FIX-COMPILE-DEPLOY-DEBUG ที่ช้าซึ่งฆ่าผลผลิต นี่คือหลักจับของฉัน คุณทำการเปลี่ยนแปลงคุณต้องรอให้ maven build เริ่มใช้งานและรอให้มันปรับใช้ …

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

4
สร้างขวดปฏิบัติการด้วย maven?
ฉันกำลังพยายามสร้าง jar ปฏิบัติการสำหรับโปรเจ็กต์บ้านขนาดเล็กชื่อ "logmanager" โดยใช้ maven เช่นนี้: ฉันจะสร้าง JAR ที่ปฏิบัติการได้โดยใช้ Maven ได้อย่างไร ฉันเพิ่มข้อมูลโค้ดที่แสดงไว้ใน pom.xml และรัน mvn assembly: assembly มันสร้างไฟล์ jar สองไฟล์ใน logmanager / target: logmanager-0.1.0.jar และ logmanager-0.1.0-jar-with-dependencies.jar ฉันได้รับข้อผิดพลาดเมื่อฉันดับเบิลคลิกที่โถแรก: Could not find the main class: com.gorkwobble.logmanager.LogManager. Program will exit. ข้อผิดพลาดที่แตกต่างกันเล็กน้อยเมื่อฉันดับเบิลคลิก jar-with-dependencies.jar: Failed to load Main-Class manifest attribute from: C:\EclipseProjects\logmanager\target\logmanager-0.1.0-jar-with-dependencies.jar ฉันคัดลอกและวางเส้นทางและชื่อคลาสและตรวจสอบการสะกดใน POM …

2
ฉันสามารถรวบรวมไฟล์. cpp ทั้งหมดใน src / ถึง. ของใน obj / แล้วเชื่อมโยงไปยังไบนารีใน. / ได้หรือไม่
ไดเรกทอรีโครงการของฉันมีลักษณะดังนี้: /project Makefile main /src main.cpp foo.cpp foo.h bar.cpp bar.h /obj main.o foo.o bar.o สิ่งที่ฉันต้องการ Makefile ของฉันจะทำจะรวบรวมทุก.cppไฟล์ใน/srcโฟลเดอร์.oไฟล์ใน/objโฟลเดอร์แล้วเชื่อมโยงทุก.oไฟล์ในเข้าไปในไบนารีการส่งออกในโฟลเดอร์ระดับบนสุด/obj/project ฉันไม่มีประสบการณ์กับ Makefiles เลยและฉันไม่แน่ใจจริงๆว่าจะค้นหาอะไรเพื่อให้บรรลุเป้าหมายนี้ นอกจากนี้นี่เป็นวิธีที่ "ดี" ในการทำเช่นนี้หรือมีแนวทางที่เป็นมาตรฐานมากกว่าสำหรับสิ่งที่ฉันกำลังพยายามทำอยู่หรือไม่

2
การอ้างอิงที่แตกต่างกันสำหรับโปรไฟล์การสร้างที่แตกต่างกัน
เป็นไปได้ไหมที่จะมีชุดการอ้างอิงที่แตกต่างกันในไฟล์ maven pom.xml สำหรับโปรไฟล์ที่แตกต่างกัน? เช่น mvn -P debug mvn -P release ฉันต้องการรับไฟล์ jar การพึ่งพาอื่นในโปรไฟล์เดียวที่มีชื่อคลาสเดียวกันและการใช้งานอินเทอร์เฟซเดียวกันที่แตกต่างกัน

10
โปรแกรมสามารถขึ้นอยู่กับไลบรารีในระหว่างการคอมไพล์ แต่ไม่ใช่รันไทม์?
ผมเข้าใจความแตกต่างระหว่างรันไทม์และเวลารวบรวมและวิธีการแยกความแตกต่างระหว่างทั้งสอง แต่ผมก็ไม่เห็นความจำเป็นที่จะทำให้ความแตกต่างระหว่างเวลารวบรวมและรันไทม์อ้างอิง สิ่งที่ฉันสำลักคือ: โปรแกรมจะไม่ขึ้นอยู่กับบางสิ่งบางอย่างในรันไทม์ที่ขึ้นอยู่ระหว่างการคอมไพล์ได้อย่างไร? หากแอป Java ของฉันใช้ log4j แสดงว่าต้องใช้ไฟล์ log4j.jar เพื่อที่จะคอมไพล์ (รหัสของฉันรวมเข้ากับและเรียกใช้เมธอดสมาชิกจากภายใน log4j) รวมถึงรันไทม์ (รหัสของฉันไม่สามารถควบคุมสิ่งที่เกิดขึ้นได้อย่างแน่นอนเมื่อโค้ดภายใน log4j .jar รัน) ฉันกำลังอ่านข้อมูลเกี่ยวกับเครื่องมือแก้ปัญหาการพึ่งพาเช่น Ivy และ Maven และเครื่องมือเหล่านี้ทำให้ความแตกต่างระหว่างการอ้างอิงทั้งสองประเภทนี้อย่างชัดเจน ฉันไม่เข้าใจความจำเป็นของมัน ใครช่วยให้คำอธิบายแบบ "King's English" แบบง่ายๆโดยเฉพาะตัวอย่างจริงที่แม้แต่คนยากจนอย่างฉันก็ยังเข้าใจได้

8
ฉันจะใส่ไฟล์ JAR ที่จำเป็นทั้งหมดในโฟลเดอร์ไลบรารีภายในไฟล์ JAR สุดท้ายด้วย Maven ได้อย่างไร
ฉันใช้ Maven ในแอปพลิเคชันแบบสแตนด์อโลนของฉันและฉันต้องการรวมการอ้างอิงทั้งหมดในไฟล์ JAR ของฉันไว้ในโฟลเดอร์ไลบรารีดังที่กล่าวไว้ในคำตอบข้อใดข้อหนึ่งที่นี่: ฉันจะสร้าง JAR ที่ปฏิบัติการได้โดยใช้ Maven ได้อย่างไร ฉันต้องการให้ไฟล์ JAR สุดท้ายของฉันมีโฟลเดอร์ไลบรารีที่มีการอ้างอิงเป็นไฟล์ JAR ไม่ใช่เหมือนกับสิ่งmaven-shade-pluginที่ทำให้การอ้างอิงในรูปแบบของโฟลเดอร์เช่นลำดับชั้น Maven ในโฟลเดอร์. m2 ที่จริงแล้วการกำหนดค่าปัจจุบันทำในสิ่งที่ฉันต้องการ แต่ฉันมีปัญหากับการโหลดไฟล์ JAR เมื่อเรียกใช้แอปพลิเคชัน ฉันโหลดคลาสไม่ได้ นี่คือการกำหนดค่าของฉัน: <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>prepare-package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/classes/lib</outputDirectory> <overWriteReleases>false</overWriteReleases> <overWriteSnapshots>false</overWriteSnapshots> <overWriteIfNewer>true</overWriteIfNewer> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> …

2
ตัวแปร Xcode
ใน Xcode ฉันรู้ว่าคุณสามารถรับตัวแปรเช่นPROJECT_DIRเพื่อใช้ในบางสถานการณ์เช่นเฟสการสร้างสคริปต์ที่รัน ฉันสงสัยว่าเป็นไปได้ไหมที่จะได้รับประเภทการสร้าง (เช่นรีลีสหรือดีบัก ) ความคิดใด ๆ ?

18
“ Build Server” คืออะไร? [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันไม่ได้ทำงานในองค์กรขนาดใหญ่มากและฉันไม่เคยทำงานให้กับ บริษัท ที่มี "Build Server" จุดประสงค์ของพวกเขาคืออะไร? เหตุใดนักพัฒนาจึงไม่สร้างโครงการบนเครื่องในพื้นที่ของตนหรือ? บางโครงการมีขนาดใหญ่จนจำเป็นต้องใช้เครื่องจักรที่มีประสิทธิภาพมากกว่าในการสร้างในระยะเวลาที่เหมาะสมหรือไม่? ที่เดียวที่ฉันเห็นว่า Build Server มีประโยชน์คือสำหรับการรวมอย่างต่อเนื่องกับเซิร์ฟเวอร์ build ที่สร้างสิ่งที่มุ่งมั่นกับที่เก็บอย่างต่อเนื่อง ฉันไม่ได้ทำงานในโครงการที่ใหญ่พอหรือไม่? ใครบางคนโปรดให้ความรู้ฉัน: จุดประสงค์ของการสร้างเซิร์ฟเวอร์คืออะไร?

10
Maven: จะรวมไหซึ่งไม่มีในตัวแทนเข้าในโครงการ J2EE ได้อย่างไร
ในโครงการ J2EE ของฉันฉันมีการอ้างอิงสองสามรายการซึ่งไม่มีอยู่ในที่เก็บ Maven ใด ๆ เนื่องจากเป็นไลบรารีที่เป็นกรรมสิทธิ์ ไลบรารีเหล่านี้จำเป็นต้องพร้อมใช้งานที่รันไทม์ดังนั้นจึงต้องคัดลอกไปยังเป้าหมาย /.../ WEB-INF / lib ... ตอนนี้ฉันแสดงรายการเป็นการพึ่งพาระบบใน POM ของฉัน แต่ด้วยวิธีนี้ปัญหาคือจะไม่ถูกคัดลอกไปยังบิลด์เป้าหมายระหว่างการคอมไพล์ นอกจากนี้วิธีนี้ยังไม่สง่างามมาก วิธีใดที่ดีที่สุดในการรวมเข้ากับ Maven หมายเหตุ: ฉันไม่ต้องการสร้างที่เก็บ Maven ของตัวเอง

5
ฉันจะทำให้งานสร้างของ Visual Studio มีรายละเอียดมากได้อย่างไร
ฉันจำเป็นต้องระงับทุกแฟล็กทุกสวิตช์ที่ใช้ในกระบวนการสร้างโดยไบนารี Visual Studio ฉันพยายามรับเอาท์พุตแบบละเอียดโดยใช้vcbuildแต่ฉันไม่สามารถทำได้ ฉันต้องทำอย่างไรเพื่อดูทุกอย่างที่แสดงโดย Visual Studio สำหรับฉัน ไม่จำเป็นต้องรับเอาต์พุตในหน้าต่างบิลด์ ที่ไหนก็ได้จะดี

30
ทำไม Maven ถึงมีตัวแทนที่ไม่ดีเช่นนี้? [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดขึ้นมาใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ล็อค คำถามนี้และคำตอบถูกล็อกเนื่องจากคำถามไม่ตรงประเด็น แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ยังไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ มีการพูดถึงมากมายในอินเทอร์เน็ตว่า Maven ไม่ดีอย่างไร ฉันใช้คุณสมบัติบางอย่างของ Maven มาสองสามปีแล้วและประโยชน์ที่สำคัญที่สุดในมุมมองของฉันคือการจัดการการพึ่งพา เอกสาร Maven มีน้อยกว่าที่เพียงพอ แต่โดยทั่วไปเมื่อฉันต้องการทำบางสิ่งให้สำเร็จฉันคิดออกเพียงครั้งเดียวแล้วมันก็ใช้งานได้ (เช่นเมื่อฉันใช้การเซ็นชื่อในขวดโหล) ฉันไม่คิดว่า Maven จะยอดเยี่ยม แต่มันช่วยแก้ปัญหาบางอย่างที่ไม่มีมันจะเป็นความเจ็บปวดอย่างแท้จริง เหตุใด Maven จึงมีตัวแทนที่ไม่ดีและปัญหาอะไรกับ Maven ที่ฉันคาดหวังได้ในอนาคต อาจมีทางเลือกอื่นที่ดีกว่าที่ฉันไม่รู้? (ตัวอย่างเช่นฉันไม่เคยดูรายละเอียดของ Ivy) หมายเหตุ: นี่ไม่ใช่ความพยายามที่จะทำให้เกิดข้อโต้แย้ง เป็นความพยายามที่จะล้าง FUD

6
ใน Maven 2 ฉันจะรู้ได้อย่างไรว่าการพึ่งพาใดมาจากการพึ่งพาสกรรมกริยา
ฉันต้องการทราบว่าการอ้างอิงใดที่อธิบายไว้ใน pom.xml ของฉันทำให้เกิดการพึ่งพาสกรรมกริยาในไดเร็กทอรีเป้าหมายของฉัน เพื่อให้แม่นยำยิ่งขึ้นฉันมีไลบรารี "poi-2.5.1-final-20040804.jar" ในไดเรกทอรี WEB-INF / lib ของฉันและฉันต้องการทราบว่าการอ้างอิงใดใน pom.xml ของฉันทำให้เกิดสิ่งนั้น

8
Ant: จะรันคำสั่งสำหรับแต่ละไฟล์ในไดเร็กทอรีได้อย่างไร?
ฉันต้องการรันคำสั่งจาก Ant buildfile สำหรับแต่ละไฟล์ในไดเร็กทอรี ฉันกำลังมองหาโซลูชันที่ไม่ขึ้นกับแพลตฟอร์ม ฉันต้องทำอย่างไร แน่นอนว่าฉันสามารถเขียนสคริปต์ในภาษาสคริปต์บางภาษาได้ แต่สิ่งนี้จะเพิ่มการอ้างอิงเพิ่มเติมให้กับโครงการ

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