OpenApiGenerator - 如何跳过由于版本更改而生成文件更改

2023-12-23

我正在使用typescript-rxjs发电机。每当我生成 API 客户端的新版本时,所有文件都会发生更改,其中 99% 是因为版本更改: * The version of the OpenAPI document: 1.47.0-rc.20。真正的变化会在大量的变化中消失。

我不想覆盖生成器的所有文件模板。这似乎效率低下,因为我必须观察模板的更改。


不同的 OpenAPI 生成器使用 Mustache 作为模板引擎来生成不同的工件。

在这个特定的用例中,版本信息定义在licenseInfo.mustache https://github.com/OpenAPITools/openapi-generator/blob/150e24dc553a8ea5230ffb938ed3e6020e972faa/modules/openapi-generator/src/main/resources/typescript-rxjs/licenseInfo.mustache.

该模板包含在用于生成不同客户端工件的其余模板中。

您可以尝试修改该模板并提供您自己的版本。 OpenAPI 生成器使您能够override https://openapi-generator.tech/docs/templating/现有模板。

修改后,需要配置 https://openapi-generator.tech/docs/templating/#modifying-templates您用作生成器的工具(CLI、Maven、Gradle),用于指示在何处查找修改后的模板。

如果有必要,您甚至可以提供您的自己的自定义用户定义模板 https://openapi-generator.tech/docs/customization/#user-defined-templates.

另一种方法可能是定义某种文件后处理 https://openapi-generator.tech/docs/file-post-processing/生成器完成其进程后将执行的逻辑。

在这种情况下typescript-rxjs生成器,要执行的代码必须定义为环境变量中的字符串值TS_POST_PROCESS_FILE.

一个典型的例子:

export TS_POST_PROCESS_FILE="/usr/local/bin/prettier --write"

在你的情况下,也许你可以定义某种脚本,例如,sed或其他文本处理工具,如果您使用的是基于 linux 或 unix 的操作系统,或者自定义的 node.js 脚本,则会删除该信息。该解决方案将再次取决于您用于生成代码的实际机制 - CLI、Maven、Gradle...。

话虽如此,请考虑是否有必要将生成的文件置于版本控制之下。可能有一些机制允许您的代码直接生成和使用它,或者您可以定义 CI 流来生成可在私有注册表中使用的 npm 包,并在必要时在不同的项目中使用该包。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenApiGenerator - 如何跳过由于版本更改而生成文件更改 的相关文章

随机推荐

  • jQueryUI 多个可放置元素

    怎么当我拖着我的draggable div to droppable1div 它总是被放置在droppable2 div 另外 我遵循了 jQuery UI snap back 选项 但它不起作用 我怎样才能做到这一点而不是拖拉实际的dra
  • 如何在 LINQ 中对单个联接中的多个字段进行联接

    我需要执行一个 LINQ2DataSet 查询 该查询对多个字段进行联接 如 var result from x in entity join y in entity2 on x field1 y field1 and x field2 y
  • 精确单词搜索中允许出现一个字母错误

    我们正在实施一个搜索应用程序 我们通过以下 sql 查询实现了精确单词搜索 SELECT FROM jreviews content WHERE jr produits REGEXP lt ryan gt 现在效果很好 我们在某些字段中还有
  • 在 perl 中解码 UTF-8 JSON 的问题

    UTF 8字符在使用JSON库处理时会被破坏 也许这类似于在perl中解码unicode JSON的问题 https stackoverflow com questions 5536796 problem with decoding uni
  • 如何在 WordPress 上跨主机名并行下载?

    在 GTmetrix 上检查我的 WordPress 网站时 我收到此消息 跨主机名并行下载 gt https gtmetrix com https gtmetrix com 这是详细信息 gt https gtmetrix com par
  • Lookup Class 在 LINQ 中,底层数据结构是什么?

    LINQ 中 Lookup 类的底层数据结构是什么 它是哈希表吗 它是一个哈希表 其中每个存储桶都包含一个链表 并且每个项目都是所有项目的链表的一部分 换句话说 哈希表中的每一项都包含一个key 的列表elements 指向哈希桶中下一项的
  • VS2012 的数据源工具箱不显示我的实体模型

    从数据源工具箱本身添加实体模型或通过添加它 gt 添加 gt 新项目 后 它不会显示在数据源工具箱中 因此我无法获得那么简单的拖放功能 如果我添加一个数据集 它可以工作 但这是一种较旧的技术 不是吗 我当前项目中的所有内容都是实体模型并更改
  • 加密:使用初始化向量还是密钥?

    我正在使用 PHPmcrypt图书馆和AES 256 rijndael 算法 需要密钥 初始化向量才能运行 我的逻辑头脑并不真正同意这一点 难道只有一把钥匙就够了吗 理论场景 如果我将加密的敏感数据存储在数据库中 只有所有者才能解密 那么使
  • 如何在 RxJs 5 中将主题转换为可观察对象

    我们如何在 RxJs 5 中将主题转换为可观察对象 例如 当我们想要公开主题进行订阅但又不想放弃对调用的控制时 此功能非常有用next 并倾向于将新值的发布保密 文档 参见here https github com Reactive Ext
  • oracle查询出错单行子查询返回多行

    知道这里有什么问题吗 如何将以下 Sybase 查询转换为 Oracle Sybase查询 Update student s1 set s1 delay select date1 date2 from cource c where c ID
  • C# WPF 在 Stackpanel 中编程创建的 DataTemplate Dockpanel 没有效果

    我正在尝试为列表框动态创建数据模板 这是针对自定义用户控件的 这个用户控件有一个依赖属性它接受任何类型的IEnumerable 这工作正常 但输出总是 适当的价值 适当的价值 如果对象包含 2 个属性 但我希望这些属性并排排列 喜欢 对象1
  • 增加 R for Mac 中的内存限制

    我一直在查看网上发布的有关如何增加 R 内存限制的解决方案 但这些解决方案似乎只适用于windows https stackoverflow com questions 1395229 increasing or decreasing th
  • Codeigniter:CSS 文件中的 base_url() 不起作用

    base url 不适用于 CSS 文件 这是我的 php 这是我的 css style css body background 356aa0 url
  • WindowsFormsHost 中的 MouseWheel 事件

    我有一个 WPF 应用程序 它使用 WindowsFormsHost 控件来托管 Windows Forms 控件 我尝试实现 MouseWheel 事件 但似乎 MouseWheel 事件从未触发 这个问题有解决方法吗 解决方法是使用事件
  • 极值的 logit 和逆 logit 函数

    我需要 logit 和逆 logit 函数 以便logit inv logit n n 我使用 numpy 这是我所拥有的 import numpy as np def logit p return np log p np log 1 p
  • CKEditor 去除内联属性

    我使用 CKEditor 一段时间了 效果很好 我几乎已经摆脱了我遇到的任何问题 但这个问题我似乎无法弄清楚 例如 当我向元素添加内联属性时style color ff0 on a p p 当我从所见即所得视图切换到源视图时 它们的标签被删
  • 使用 wget 和 Windows Scheduler 运行 php 脚本

    在我的笔记本电脑上 我安装了一个网络服务器并编写了一个脚本 通过访问脚本http localhost test search php在任何浏览器中都可以使其正常运行 它搜索 下载和存储某些推文 我现在想让脚本每20分钟自动运行一次 所以我下
  • 使用 java lambda 调用 kotlin 函数时,Kotlin 无法访问 kotlin.jvm.functions.Function1

    我正在尝试从 Java 调用以下 Kotlin 函数 override fun First list LinqList
  • 在离散 x 轴上绘制 geom_vline

    我无法在绘图的 x 轴上以离散 因子 水平绘制垂直线 在这个解决方案中 它似乎有效在ggplot2中绘制具有因子水平的垂直线 https stackoverflow com questions 50534862 drawing vertic
  • OpenApiGenerator - 如何跳过由于版本更改而生成文件更改

    我正在使用typescript rxjs发电机 每当我生成 API 客户端的新版本时 所有文件都会发生更改 其中 99 是因为版本更改 The version of the OpenAPI document 1 47 0 rc 20 真正的