swagger 尝试使生成脚本读取java文件时出错-无法解析配置':classpath'的所有工件

kmbjn2e3  于 2022-11-06  发布在  Java
关注(0)|答案(1)|浏览(217)

我尝试通过将我自己的自定义java文件添加到类路径中来实现这一点
https://github.com/gigaSproule/swagger-gradle-plugin#model-converters
如上面的示例所示

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.custom:model-converter:1.0.0'
    }
}
...
swagger {
    apiSource {
        ...
        modelConverters = [ 'com.custom.model.Converter' ]
    }
}

这是我的密码

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("com.test.app.profile.component.MyOpenApiCustomiser:1.0.0")
    }
}
    swagger {
        apiSource {
            ...
            modelConverters = [ 'com.test.app.profile.component.MyOpenApiCustomiser' ]
        }
    }

这是我得到的错误

A problem occurred configuring root project 'profile'.
> Could not resolve all artifacts for configuration ':classpath'.
   > Could not find com.test.app.profile.component.MyOpenApiCustomiser:1.0.0:.
     Required by:
         project :

Possible solution:
 - Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html

我尝试删除1.0.0

Caused by: org.gradle.api.IllegalDependencyNotation: Supplied String module notation 'com.test.app.profile.component.MyOpenApiCustomiser' is invalid. Example notations: 'org.gradle:gradle-core:2.2', 'org.mockito:mockito-core:1.9.5:javadoc'

不知道我将如何让我的构建脚本在我的Spring Boot 应用程序中使用MyOpenApiCustomiser。有没有其他方法或如何修复这个问题?

7nbnzgx9

7nbnzgx91#

buildscript.dependencies {}块中给出的classpath依赖项需要是一个外部库,以标准的group:modulde:version符号给出;在github项目的示例中,它是“com.custom:模型转换器:1.0.0”(这是一个“假”库,并不真正存在于Maven中央回购库中,这只是一个例子)
在您的例子中,您似乎试图将类MyOpenApiCustomiser作为类路径库引用,但这是不可行的。
如果您想使用自己的Converter,则需要在另一个库/模块中实现它,将其发布到一个私有存储库,然后在buildscript类路径中使用它。
另一种更简单的方法是将此转换器实现为buildSrc项目中的一个类:这些类将自动出现在您的构建脚本类路径中,并且您可以在apiSource配置中使用它。
样品:
1.在buildSrc项目中

  • 构建.gradle*
plugins {
    id("java")
}
repositories {
    mavenCentral()
}
dependencies {
    implementation "io.swagger:swagger-core:1.6.2"
}

您的自定义ModelConverter类位于src/main/java下,例如com.sample.MyCustomConverter
1.在您的根build.gradle脚本中:
您可以引用您的MyCustomConverter类,它已经在脚本类路径中可用,无需在buildscript中定义classpath依赖项

swagger {
    apiSource {
        modelConverters = [ 'com.sample.MyCustomConverter' ]
        // ....

相关问题