Make "apiGenerator" a separate task instead of binding it to android.applicationVariants

This commit is contained in:
Daniil Borisovskii 2020-05-29 19:04:45 +03:00
parent df20211646
commit 36e6847646
1 changed files with 19 additions and 22 deletions

View File

@ -15,28 +15,25 @@ dependencies {
apigenerator 'ru.touchin:api-generator:1.4.0-beta1'
}
android.applicationVariants.all { variant ->
final File generatedModelsDirectory = new File("${project.buildDir}/generated/source/models/${variant.dirName}")
final File generatedModelsDirectory = new File("${project.buildDir}/generated/source/models")
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"),
"--output-path",
"${generatedModelsDirectory.path}",
"--package-name",
"${rootProject.extensions.findByName("applicationId") ?: applicationId}"
]
}
def generateJsonModelsTask = tasks.create("apiGenerator") doLast {
javaexec {
main = "-jar"
workingDir = file("${rootDir}")
args = [
configurations.apigenerator.asPath,
"generate-client-code",
"--output-language",
"KOTLIN",
"--specification-path",
rootProject.extensions.findByName("pathToApiSchemes"),
"--output-path",
"${generatedModelsDirectory.path}",
"--package-name",
"${rootProject.extensions.findByName("applicationId")}"
]
}
generateJsonModelsTask.description = 'Generates Java classes for JSON models'
variant.registerJavaGeneratingTask generateJsonModelsTask, generatedModelsDirectory
}
generateJsonModelsTask.description = 'Generates Java classes for JSON models'