登录
首页 >  Golang >  Go问答

为什么 kubebuilder 在 zz_ generated.deepcopy.go 文件中包含 // +build !ignore_autogenerate?

来源:stackoverflow

时间:2024-02-29 08:18:25 486浏览 收藏

有志者,事竟成!如果你在学习Golang,那么本文《为什么 kubebuilder 在 zz_ generated.deepcopy.go 文件中包含 // +build !ignore_autogenerate?》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

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

//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.

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


正确答案


controller-gen 使用它来识别它生成的文件,它只会覆盖这些文件。

例如编辑生成的 zz_ generated.deepcopy.go 并运行 makegenerate => 文件被覆盖。

现在再次编辑该文件,同时删除带有构建约束的两行(go:build 行用于 go >= 1.17,+buildline 用于旧版本 IIRC)并再次运行 makegenerate => 您的更改这次文件没有被覆盖。

本篇关于《为什么 kubebuilder 在 zz_ generated.deepcopy.go 文件中包含 // +build !ignore_autogenerate?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>