กำลังมองหาแพคเกจ golang ที่เติบโตและปรับปรุงอย่างแข็งขันฉันสงสัยว่าปัญหาของรุ่นแพ็คเกจจะได้รับการแก้ไขอย่างไร
ฉันเห็นว่าวิธีหนึ่งคือการจัดเก็บแพคเกจของบุคคลที่สามไว้ในโฟลเดอร์โครงการ
แต่ถ้าฉันติดตั้งด้วยgo get
ล่ะ
กำลังมองหาแพคเกจ golang ที่เติบโตและปรับปรุงอย่างแข็งขันฉันสงสัยว่าปัญหาของรุ่นแพ็คเกจจะได้รับการแก้ไขอย่างไร
ฉันเห็นว่าวิธีหนึ่งคือการจัดเก็บแพคเกจของบุคคลที่สามไว้ในโฟลเดอร์โครงการ
แต่ถ้าฉันติดตั้งด้วยgo get
ล่ะ
คำตอบ:
go get
จะติดตั้งแพ็กเกจในไดเรกทอรีแรกที่แสดงรายการไว้ที่GOPATH
(ตัวแปรสภาพแวดล้อมซึ่งอาจมีรายการไดเรกทอรีที่คั่นด้วยโคลอน) คุณสามารถใช้go get -u
เพื่ออัพเดตแพ็คเกจที่มีอยู่
คุณยังสามารถใช้go get -u all
เพื่ออัปเดตแพ็คเกจทั้งหมดในGOPATH
สำหรับโครงการขนาดใหญ่อาจมีเหตุผลที่จะสร้าง GOPATH ที่แตกต่างกันสำหรับแต่ละโครงการดังนั้นการอัปเดตไลบรารีในโครงการ A จะไม่ทำให้เกิดปัญหาในโครงการ B
พิมพ์go help gopath
เพื่อค้นหาข้อมูลเพิ่มเติมเกี่ยวกับGOPATH
ตัวแปรสภาพแวดล้อม
go get -u all
เสียใจที่จะฟื้นคืนชีพ แต่ในกรณีที่คนอื่นกำลังมองหา
go get -u all
ไม่ทำงานอีกต่อไป! การใช้คำสั่งนี้ใน GOPATH อย่างน้อยสำหรับ Go 1.13 จะส่งคืนคำเตือน: `คำเตือน" ทั้งหมด "ไม่จับคู่แพ็กเกจ"
@tux คำตอบนั้นยอดเยี่ยมเพียงแค่ต้องการเพิ่มว่าคุณสามารถใช้go getเพื่ออัปเดตแพคเกจเฉพาะ:
go get -u full_package_name
เนื่องจากคำถามที่กล่าวถึงห้องสมุดบุคคลที่สามและไม่ใช่ทุกแพ็คเกจคุณอาจต้องการกลับไปใช้สัญลักษณ์แทน
กรณีใช้งาน: ฉันแค่ต้องการอัปเดตแพ็คเกจทั้งหมดของฉันที่ได้รับจาก Github VCS จากนั้นคุณก็จะพูดว่า:
go get -u github.com/... // ('...' being the wildcard).
สิ่งนี้จะดำเนินต่อไปและอัปเดตแพ็คเกจ GitHub ของคุณในปัจจุบันเท่านั้น $GOPATH
เช่นเดียวกันสำหรับภายใน VCS ด้วยเช่นกันคุณต้องการอัพเกรดแพ็คเกจทั้งหมดจาก repo ของ ogranizaiton A เนื่องจากพวกเขาได้เปิดตัวโปรแกรมแก้ไขด่วนที่คุณต้องพึ่งพา:
go get -u github.com/orgA/...
คำตอบข้างต้นมีปัญหาดังต่อไปนี้:
เพื่อหลีกเลี่ยงสิ่งเหล่านี้ให้ทำดังต่อไปนี้:
go get -d
ไป 1.13
(exec จากไดเรกทอรีรากโมดูล)
อัปเดตการอ้างอิงที่ระบุ:
go get -u <package-name>
อัปเดตการอ้างอิงโดยตรงและโดยอ้อมทั้งหมดเป็นการอัปเดตย่อยหรือการอัปเดตแพทช์ล่าสุด (ละเว้นการเผยแพร่ล่วงหน้า):
go get -u ./...
# or
go get -u=patch ./...
อ้างอิง:
https://github.com/golang/go/wiki/Modules#daily-workflow
go help get
หากต้องการระบุรุ่นหรือกระทำ:
go get -u otherpackage@1.2.3
go get -u otherpackage@git-sha
ไปที่เส้นทางและประเภท
go get -u ./..
มันจะอัปเดตทุกแพคเกจที่จำเป็น
go get -u ./...
(3 จุด)