Ben kullandım GOPATH
ama bu mevcut sorun için ben yardımcı olmuyor. Bir projeye özgü paketler oluşturmak istiyorum:
myproject/
├── binary1.go
├── binary2.go
├── package1.go
└── package2.go
Ben birden fazla yol çalıştı ama nasıl alırım package1.go
iş için binary1.go
veya binary2.go
üzerinde ve böylece?
Örneğin; Ben edebilmek istiyorum import "package1"
ve daha sonra çalıştırmak mümkün go build binary1.go
ve her şey hata paket bulunabilir edilemeyeceğini atılan olmadan cezası çalışır GOROOT
veya GOPATH
. Bu tür bir işleve ihtiyaç duymamın nedeni büyük ölçekli projeler için; Birden fazla pakete başvurmak veya bunları büyük bir dosyada tutmak istemiyorum.
.go
Tek bir dizindeki tüm dosyalar aynı paketin parçasıdır import
ve aynı paketteki (yani aynı dizindeki) dosyalara ihtiyacınız yoktur . Yeni Go modülleri sisteminin yeteneklerinden biri olan GOPATH dışında çalışmayı söylemiştiniz. Bu cevap kapakları vb tek depoda birden modüllerini olması olsun veya olmasın bir modül içindeki paketleri düzenlenmesi, yerel paketler ithal yapısını modülü
git/repo/to/my/project
yolu belirtmedikçe temel olarak yerel alt paketlerinizi içe aktaramayacağınızı mı düşünüyorsunuz? Kimsenin bu davranışı istemesinin nedenini görmüyorum. Projenizi başka bir konuma (örneğin Docker görüntüsü) taşırsanız, tüm yolları tekrar değiştirmeniz gerekir? Bunun neden bu kadar karmaşık olduğunu cevapları arıyorum.