为什么 kubebuilder 在 zz_generated.deepcopy.go 文件中包含

使用 kubebuilder 生成的每个 deepcopy 生成的文件都会生成一个顶部make带有构建标记指令的文件。// +build !ignore_autogenerated


//go:build !ignore_autogenerated

// +build !ignore_autogenerated


/*

Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except in compliance with the License.

You may obtain a copy of the License at


    http://www.apache.org/licenses/LICENSE-2.0


Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

*/


// Code generated by controller-gen. DO NOT EDIT.

为什么要将这个特定的构建标记指令添加到这些生成的文件中?它的目的是什么?


眼眸繁星
浏览 175回答 1
1回答

开满天机

它被controller-gen用来识别它生成的文件,它只会覆盖那些文件。例如,编辑一个生成的文件zz_generated.deepcopy.go并运行make generate=> 文件被覆盖。现在再次编辑文件,同时删除带有构建约束的两行(该go:build行用于 go >= 1.17,+build旧版本 IIRC 的行)并make generate再次运行 => 这次您对文件的更改没有被覆盖。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go