Вы МОЖЕТЕ запустить kubernetes / code-generator generate-groups. sh на модуле go, который присутствует только в вашей локальной системе. Ни генератор кода, ни ваш модуль не должны находиться в вашем GOPATH
.
Подтверждении
Клонирован kubernetes / code-generator в новый каталог.
$HOME/somedir
├── code-generator
Создал проект с именем myrepo
и издевался над ним с содержимым, напоминающим sample-controller . Сделал это в том же каталоге, чтобы было проще.
somedir
├── code-generator
└── myorg.com
└── myrepo # mock of sample-controller
├── go.mod
├── go.sum
└── pkg
└── apis
└── myorg
├── register.go
└── v1alpha1
├── doc.go
├── register.go
└── types.go
Мой go .mod был похож на
module myorg.com/myrepo
go 1.14
require k8s.io/apimachinery v0.17.4
Ран generate-group.sh
. Флаг -h
указывает, какой заголовочный файл использовать. Флаг -o
указывает выходную базу, которая необходима здесь, потому что мы не в GOPATH.
$HOME/somedir/code-generator/generate-groups.sh all myorg.com/myrepo/pkg/client myorg.com/myrepo/pkg/apis "myorg:v1alpha1" \
-h $HOME/somedir/code-generator/hack/boilerplate.go.txt \
-o $HOME/somedir
Подтвержденный код, сгенерированный в правильных местоположениях
myrepo
├── go.mod
├── go.sum
└── pkg
├── apis
│ └── myorg
│ ├── register.go
│ └── v1alpha1
│ ├── doc.go
│ ├── register.go
│ ├── types.go
│ └── zz_generated.deepcopy.go
└── client
├── clientset
│ └── versioned
│ ├── clientset.go
│ ├── doc.go
│ ├── fake
│ ├── scheme
│ └── typed
├── informers
│ └── externalversions
│ ├── factory.go
│ ├── generic.go
│ ├── internalinterfaces
│ └── myorg
└── listers
└── myorg
└── v1alpha1
Sources