当前位置: 首页 > 知识库问答 >
问题:

为openapi-generator gradle插件添加自定义codegen实现

宗政松
2023-03-14

对于maven,我可以很容易地添加我的自定义实现com.my.generator:customgenerator:1.0-snapshot in plugin dependency block,

<plugin>
      <groupId>org.openapitools</groupId>
      <artifactId>openapi-generator-maven-plugin</artifactId>
      <version>${openapi-generator-maven-plugin-version}</version>
      <executions>
          <execution>
              <goals>
                  <goal>generate</goal>
              </goals>
              <configuration>
                <templateDirectory>myTemplateDir</templateDirectory>
                <apiPackage>${default.package}.handler</apiPackage>
                <modelPackage>${default.package}.model</modelPackage>
            </configuration>
          </execution>
       </executions>

      <dependencies>
          <dependency>
              <groupId>com.my.generator</groupId>
              <artifactId>customgenerator</artifactId>
              <version>1.0-SNAPSHOT</version>
          </dependency>
      </dependencies>
</plugin>

但在gradle我不知道怎么做

共有1个答案

冯玮
2023-03-14

如果你知道Gradle插件是如何工作的,解决方案就很简单了。以下是如何做到这一点的步骤:

  1. 您需要将自定义生成器类添加到插件的类路径中。但是,您不能使用Gradle项目的任何模块,其中您想使用生成器插件,因为Gradle插件是在项目的整个编译之前应用的,也是在依赖关系解决之前应用的。因此,必须使用已经编译的jar文件。例如,创建一个新的Gradle项目,在其中放置自定义生成器代码并将其发布到maven本地存储库(如何使用Gradle将源代码发布到本地maven存储库?)。然后您可以将其添加到插件类路径中,如下所示:
buildscript {
    repositories {
        mavenLocal()
        mavenCentral()
    }
    dependencies {
        classpath "org.openapitools:openapi-generator:4.3.0"
        classpath "some.custom.openapi:generator:0.0.1"
    }
}
some.custom.openapi.CustomJavaCodegen

(这里必须是自定义生成器类的名称)并将其放置到文件夹src/main/resources/meta-inf/services/

 类似资料:
  • OpenAPI-CodeGen Node.js-based codegen for OpenAPI documents. This project was initially a 24-hour hackathon. The local model adaptor code is entirely original and has been reverse-engineered from the

  • 我正在为wordpress构建我的第一个插件,我需要它为登录屏幕动态添加一个自定义页面。 我能找到的唯一一件接近我需要的东西是:WP-使用插件目录中的文件作为自定义页面模板? 这是我目前在我的插件中运行的代码... 使用这将需要我的客户端创建新页面。。。我需要的是插件使用插件文件夹中的模板文件自动创建一个自定义页面(具有自定义路径,意思是.com/custompathhere),该模板文件将包含插

  • 注意:我查看了这篇类似的旧文章,但当时不可用。

  • 之前的章节并没有实现当你想把一个方法添加到所有的repository接口中。要添加一个自定义行为到所有的repository中,你首先需要添加一个中介接口来声明一个共享的行为。 Example 27. An interface declaring custom shared behavior @NoRepositoryBean public interface MyRepository<T, ID

  • 为了给repository添加更丰富的自定义功能,首先你需要定义一个接口和实现这个接口中的方法。使用你提供的repostiroy接口来扩展自定义接口 Example 22. Interface for custom repository functionality interface UserRepositoryCustom { public void someCustomMethod(Use

  • 我有一个Flink会话集群(作业管理器任务管理器),版本1.11.1,配置了log4j控制台。属性包括Kafka appender。此外,在作业管理器和任务管理器中,我都启用了flink-s3-fs-hadoop内置插件。 我已经将kafka客户端jar添加到flink/lib目录,这是容器运行所必需的。但在实例化S3插件(并初始化记录器)时,我仍然会遇到类下加载错误。 原因:org.apache