ฉันเคยใช้GOPATH
แต่สำหรับปัญหาปัจจุบันนี้ฉันกำลังเผชิญหน้ากับมันไม่ได้ช่วย ฉันต้องการสร้างแพ็คเกจที่เฉพาะเจาะจงกับโครงการ:
myproject/
├── binary1.go
├── binary2.go
├── package1.go
└── package2.go
ฉันลองหลายวิธี แต่ฉันpackage1.go
จะทำงานในbinary1.go
หรือต่อbinary2.go
ๆ ไปได้อย่างไร
ตัวอย่างเช่น; ฉันต้องการที่จะสามารถimport "package1"
แล้วสามารถทำงานได้go build binary1.go
และทุกอย่างทำงานได้ดีไม่มีข้อผิดพลาดที่ถูกโยนว่าแพคเกจไม่สามารถพบได้บนหรือGOROOT
GOPATH
เหตุผลที่ฉันต้องการฟังก์ชั่นประเภทนี้สำหรับโครงการขนาดใหญ่ ฉันไม่ต้องการอ้างอิงหลายแพ็คเกจหรือเก็บไว้ในไฟล์ขนาดใหญ่
.go
ไฟล์ในไดเรกทอรีเดียวเป็นส่วนหนึ่งของแพ็กเกจเดิมและคุณไม่จำเป็นต้องimport
ไฟล์ในแพคเกจเดียวกัน (เช่นไดเรกทอรีเดียวกัน) คุณพูดถึงการทำงานนอก GOPATH ซึ่งเป็นหนึ่งในความสามารถของระบบโมดูล Go ใหม่ นี้คำตอบที่ครอบคลุมโมดูลโครงสร้างการนำเข้าแพคเกจท้องถิ่นจัดแพคเกจภายในโมดูลหรือไม่ที่จะมีโมดูลหลายในพื้นที่เก็บข้อมูลเดียว ฯลฯ
git/repo/to/my/project
เส้นทางทั้งหมด ฉันไม่เห็นเหตุผลที่ใคร ๆ ก็ต้องการพฤติกรรมนี้ ถ้าคุณย้ายโครงการของคุณไปยังตำแหน่งอื่น (เช่นอิมเมจ Docker) คุณต้องเปลี่ยนเส้นทางทั้งหมดอีกครั้ง ฉันกำลังมองหาคำตอบว่าทำไมมันซับซ้อนมาก