BuildScripts/gradle/apiGenerator.gradle

45 lines
1.4 KiB
Groovy

repositories {
maven {
url 'https://dl.bintray.com/touchin/touchin-tools'
metadataSources {
artifact()
}
}
}
configurations {
apigenerator
}
dependencies {
apigenerator 'ru.touchin:api-generator:1.4.0-beta2'
}
android.libraryVariants.all { variant ->
final File generatedModelsDirectory = new File("${project.buildDir}/generated/source/models/${variant.dirName}")
def generateJsonModelsTask = tasks.create("apiGenerator${variant.name}") doLast {
javaexec {
main = "-jar"
workingDir = file("${rootDir}")
args = [
configurations.apigenerator.asPath,
"generate-client-code",
"--output-language",
"KOTLIN",
"--specification-path",
rootProject.extensions.findByName("pathToApiSchemes"),
"--kotlin-methods-generation-mode",
"coroutines",
"--output-path",
"${generatedModelsDirectory.path}",
"--package-name",
"${rootProject.extensions.findByName("applicationId") ?: applicationId}"
]
}
}
generateJsonModelsTask.description = 'Generates Java classes for JSON models'
variant.registerJavaGeneratingTask generateJsonModelsTask, generatedModelsDirectory
}