repositories { maven { url "http://dl.bintray.com/touchin/touchin-tools" } } configurations { apigenerator } dependencies { apigenerator 'ru.touchin:api-generator:1.2.9' } 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() 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 }