วิธีรับไฟล์อ้างอิงทั้งหมดสำหรับโปรแกรมโดยใช้ Golang


90

ฉันสร้างโปรแกรมใน golang และหลังจากกรอกโค้ดเสร็จแล้วหากฉันต้องการรันโค้ดนี้บนพีซีหรือ VM เครื่องอื่นก็จะไม่ได้รับไฟล์แพ็คเกจการพึ่งพาทั้งหมด ฉันจะรับไฟล์อ้างอิงทั้งหมดได้อย่างไร

go 

คำตอบ:


9

คุณสามารถใช้godep saveในเครื่องพีซีของคุณที่คุณทำโปรแกรมเสร็จสมบูรณ์ godep save รวบรวมไฟล์อ้างอิงทั้งหมดสำหรับคุณ เมื่อคุณย้ายไปที่พีซีเครื่องอื่นเพียงแค่คัดลอกโฟลเดอร์ Godep ด้วยรหัสของคุณก็จะแก้ปัญหาของคุณได้


7
อาจจะเห็นได้ชัดสำหรับบางคน แต่ฉันต้องไปขุดสิ่งนี้ ปรากฎว่าคุณต้องติดตั้ง godep หรือ dep package เพื่อ Go Github stie สำหรับสิ่งนี้อยู่ที่นี่: github.com/tools/godep
Patratacus

216

คุณสามารถเรียกใช้go get -d ./...จากไดเร็กทอรีของโปรเจ็กต์ของคุณเพื่อดาวน์โหลดการอ้างอิง go-gettable ทั้งหมด
หรือคัดลอกsrcไดเรกทอรีย่อยทั้งหมดจาก GOPATH ของคุณไปยังเครื่องปลายทาง
...เป็นรูปแบบพิเศษบอกให้ลงซ้ำ


1
หากฉันต้องการเรียกใช้ / แก้ไขโค้ดก็ไม่พบแพ็คเกจ

1
ฉันรู้ว่าฉันสามารถรับแพ็คเกจได้โดย go get <package> แต่มันใช้เวลานานและยากมากเมื่อโปรแกรมใช้หลายแพ็คเกจ

4
-t จะติดตั้งการทดสอบการอ้างอิงด้วย
honzajde

3
@AlbertoSchiabel ...เป็นลายพิเศษ มันบอกให้ลงซ้ำ ฉันได้อัปเดตคำตอบ
RoninDev

ขอบคุณ @RoninDev! ตอนแรกฉันจะแก้ไขคำตอบของคุณ./.เพราะหลังจากลองใช้คุณสั่งบนพีซีของฉันมันก็ค้าง (และตอนนี้ฉันรู้แล้วว่าทำไมเนื่องจากการค้นหาไฟล์ go แบบวนซ้ำอาจมีราคาค่อนข้างแพง) แต่แล้วฉันก็รู้ว่ามันดีกว่า ถามก่อน. ขอบคุณ!
Alberto Schiabel

52

ลอง

go list -f '{{ join .Imports "\n" }}'

หรือ

go list -f '{{ join .Deps "\n" }}'

รายการที่สองจะแสดงรายการการพึ่งพาย่อยทั้งหมดซึ่งเป็นแพ็คเกจแรกที่นำเข้าโดยตรงเท่านั้น


24

คำสั่งด้านล่างใช้งานได้สำหรับฉันมันดาวน์โหลดการอ้างอิงทั้งหมด

go get -u -v -f all

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