【问题标题】:Getting the openapi spec from a library I depend on从我依赖的库中获取 openapi 规范
【发布时间】:2020-03-26 15:19:34
【问题描述】:

我有多个使用相同数据类型的应用。我在每个 OpenAPI 规范中都复制了这些内容。嘘。

我已经看到了曙光并将这些类型拉到了一个库中,并且它们在应用程序中被标记为已导入。该库有自己的数据类型 openapi 规范,并已发布到 maven 存储库。

当我构建我的依赖应用程序之一时,我需要获取库的 openapi 规范,以便将 $refs 解析为这些数据类型。我将用对库规范中数据类型的远程引用替换对数据类型的引用。应用的构建不能依赖于当前库的构建。

我将 openapi30.yaml 作为工件附加到库中,我可以在 repo 中看到该文件并手动下载它。

publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
            artifact 'openapi30.yaml'

        }
    }
}

我是否正确地解决了这个问题?如果是,我的应用程序的 build.gradle 如何检索和访问此文件?查看 .gradle/caches 它只会拉下 jar、pom 和 .module 文件,而不是我的规范。

【问题讨论】:

    标签: gradle openapi openapi-generator


    【解决方案1】:

    在库中,使用分类器附加您的规范

    publishing {
        publications {
            mavenJava(MavenPublication) {
                from components.java
                artifact source: 'openapi30.yaml', classifier: 'openapi', extension: 'yaml'
            }
        }
    }
    

    在消费应用中,添加配置和依赖

    configurations {
        apisource
    }
    
    dependencies {
        apisource group: 'com.xxx.yyy', name: 'lib', version: '0.1.2', classifier: 'openapi', ext: 'yaml'
    }
    

    在任务中,您可以引用下载的文件

    configurations.apisource.asPath
    

    如果有比这更好的方法,请发布替代答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多