Gradle:如何获取存储在.Gradle中的特定外部依赖项的路径?

Gradle:如何获取存储在.Gradle中的特定外部依赖项的路径?,gradle,openapi-generator,Gradle,Openapi Generator,我对格拉德尔是个新手。对于repo,我利用了非常方便的gradle插件,几乎完全按照我的要求(在我的openapi.json规范上生成HTML2静态文档),除了有一个旧的错误,该文档没有正确填充。有一个PR请求已经有好几个月没有被处理了,它主要解决了这个问题,所以我用这些更改构建了一个定制的jar 我想创建一个新的gradle任务,将这个自定义外部jar作为可执行文件运行,这样我就可以基本上实现与grade插件相同的功能。通过这样做,我将其添加到maven存储库中,并将其作为依赖项拉下来: de

我对格拉德尔是个新手。对于repo,我利用了非常方便的gradle插件,几乎完全按照我的要求(在我的openapi.json规范上生成HTML2静态文档),除了有一个旧的错误,该文档没有正确填充。有一个PR请求已经有好几个月没有被处理了,它主要解决了这个问题,所以我用这些更改构建了一个定制的jar

我想创建一个新的gradle任务,将这个自定义外部jar作为可执行文件运行,这样我就可以基本上实现与grade插件相同的功能。通过这样做,我将其添加到maven存储库中,并将其作为依赖项拉下来:

dependencies {
    compile 'org.openapitools:openapi-generator-custom-cli:3.0.0'
}
然后将jar拉入我的外部库目录,该目录存储在缓存中的一个非常特定的位置(ref:)


我怎样才能知道这个罐子的确切位置?有没有其他更适合的方法呢?

听起来,要获得定制文档,您要走的路要困难得多。如果发现的问题仅与模板有关,则可以在Gradle任务中指定
templateDir
,并指向保存自定义目录的目录

例如:

buildscript {
    repositories {
        mavenLocal()
        maven { url "https://repo1.maven.org/maven2" }
        maven {
            url "https://plugins.gradle.org/m2/"
        }
        maven {
            url "https://oss.sonatype.org/content/repositories/releases/"
        }
    }
    dependencies {
        classpath "org.openapitools:openapi-generator-gradle-plugin:4.2.3"
    }
}

apply plugin: 'org.openapi.generator'

task buildGoSdk(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask){
    generatorName = "go"
    templateDir = "$rootDir/custom-templates".toString()
    inputSpec = "$rootDir/petstore-v3.0.yaml".toString()
    additionalProperties = [
            packageName: "petstore"
    ]
    outputDir = "$buildDir/go".toString()
    configOptions = [
            dateLibrary: "threetenp"
    ]
}
然后,您可以使用
gradlebuildgosdk
来构建它

如果您希望修复的问题在管理生成器的Java代码中有一些逻辑,那么您可以创建并加载它,而无需修改gradle插件本身

实际上,我有一个HTML2生成器的示例repo,它正是这样做的。我的示例只更改了生成器名称,并将Google Analytics作为配置选项添加到模板中,但应该很容易遵循。看

关键部分是将自定义生成器jar添加到buildscript依赖项中,如下所示(取自我的repo示例):


听起来,要获得定制文档要困难得多。如果发现的问题仅与模板有关,则可以在Gradle任务中指定
templateDir
,并指向保存自定义目录的目录

例如:

buildscript {
    repositories {
        mavenLocal()
        maven { url "https://repo1.maven.org/maven2" }
        maven {
            url "https://plugins.gradle.org/m2/"
        }
        maven {
            url "https://oss.sonatype.org/content/repositories/releases/"
        }
    }
    dependencies {
        classpath "org.openapitools:openapi-generator-gradle-plugin:4.2.3"
    }
}

apply plugin: 'org.openapi.generator'

task buildGoSdk(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask){
    generatorName = "go"
    templateDir = "$rootDir/custom-templates".toString()
    inputSpec = "$rootDir/petstore-v3.0.yaml".toString()
    additionalProperties = [
            packageName: "petstore"
    ]
    outputDir = "$buildDir/go".toString()
    configOptions = [
            dateLibrary: "threetenp"
    ]
}
然后,您可以使用
gradlebuildgosdk
来构建它

如果您希望修复的问题在管理生成器的Java代码中有一些逻辑,那么您可以创建并加载它,而无需修改gradle插件本身

实际上,我有一个HTML2生成器的示例repo,它正是这样做的。我的示例只更改了生成器名称,并将Google Analytics作为配置选项添加到模板中,但应该很容易遵循。看

关键部分是将自定义生成器jar添加到buildscript依赖项中,如下所示(取自我的repo示例):