34 lines
1.2 KiB
Groovy
34 lines
1.2 KiB
Groovy
repositories {
|
|
maven { url "http://dl.bintray.com/touchin/touchin-tools" }
|
|
}
|
|
|
|
configurations {
|
|
apigenerator
|
|
}
|
|
|
|
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}")
|
|
|
|
def generateJsonModelsTask = tasks.create("apiGenerator${variant.name}") doLast {
|
|
def jarArgs = new ArrayList<String>()
|
|
jarArgs.add(configurations.apigenerator.asPath)
|
|
jarArgs.add("generate-client-code")
|
|
jarArgs.add("--output-language")
|
|
jarArgs.add("JAVA")
|
|
jarArgs.add("--specification-path")
|
|
jarArgs.add(rootProject.extensions.findByName("pathToApiSchemes"))
|
|
jarArgs.add("--output-path")
|
|
jarArgs.add("${generatedModelsDirectory.path}")
|
|
jarArgs.add("--package-name")
|
|
jarArgs.add("${rootProject.extensions.findByName("applicationId") ?: applicationId}")
|
|
javaexec { main = "-jar"; args = jarArgs; workingDir = file("${rootDir}") }
|
|
}
|
|
|
|
generateJsonModelsTask.description = 'Generates Java classes for JSON models'
|
|
variant.registerJavaGeneratingTask generateJsonModelsTask, generatedModelsDirectory
|
|
}
|