Saya sedang mengerjakan proyek baru menggunakan Go, dan kita semua baru untuk Go. Kami mengikuti struktur direktori go standar, dan memiliki semua kode di bawahnya
$ GOPATH / src / github.com / companyname / projectname
yang juga merupakan akar dari repositori git
Layout path standar yang direkomendasikan memang terasa agak aneh, terutama jika kita sedang mengerjakan proyek multi-bahasa, misal Goend rest / http backend berbasis Go, dan front-end html / javascript. Dalam hal ini saya mungkin ingin struktur proyek saya terlihat seperti ini:
/
doc/
src/
server/
main.go
module1/
module.go
client/
index.html
Makefile
Tetapi apakah sebenarnya perlu untuk menempatkan kode di dalam GOPATH?
Sebagai upaya saya membuat program kecil di mana kode sumber berada di luar GOPATH. Saya dapat dengan mudah membagi proyek menjadi paket-paket, sehingga main
paket tersebut dapat merujuk foo
paket foo/
menggunakan folder import "./foo"
.
Sejauh yang saya bisa lihat, ada dua hal yang melarang saya:
- Kode lain tidak dapat mengimpor kode ini. Ini bukan masalah karena kami sedang membangun layanan khusus untuk perusahaan.
- Saya tidak dapat menggunakannya
go install
untuk menginstalnya. Ini juga bukan masalah. Pipeline build memasang alat.
Namun itu memungkinkan server build untuk tidak menempatkan ruang kerjanya di dalam GOPATH
Apakah pendekatan seperti itu tidak disarankan? Jika demikian, mengapa demikian?
Apakah ada efek samping negatif selain dari yang saya sebutkan?
Ingatlah bahwa ini adalah proyek pribadi untuk perusahaan, bukan kode sumber terbuka publik.
Melepaskan proyek sebenarnya dari GOPATH tampaknya menggoda, tetapi orang harus berhati-hati dalam melanggar aturan ketika Anda berada di tahap Shu
Pembaruan 2019
Anda tidak perlu lagi menyimpan proyek Anda di bawah
GOPATH
.Masukkan ke dalam direktori di luar
GOPATH
. Kemudian ketik:go mod init github.com/youruser/yourproject
Anda akan baik untuk pergi.
sumber