diff --git a/gradle/plugins/src/main/java/apigen/ApiGeneratorPlugin.kt b/gradle/plugins/src/main/java/apigen/ApiGeneratorPlugin.kt index 9f42c0f..fcaf17a 100644 --- a/gradle/plugins/src/main/java/apigen/ApiGeneratorPlugin.kt +++ b/gradle/plugins/src/main/java/apigen/ApiGeneratorPlugin.kt @@ -2,6 +2,7 @@ package apigen import org.gradle.api.Plugin import org.gradle.api.Project +import org.gradle.api.Task import org.gradle.kotlin.dsl.create import org.gradle.kotlin.dsl.dependencies import org.gradle.kotlin.dsl.repositories @@ -43,39 +44,32 @@ abstract class ApiGeneratorPlugin : Plugin { protected fun Project.getExtension(): ApiGeneratorExtension = extensions.getByName(API_GENERATOR_EXT_NAME) as ApiGeneratorExtension - private fun Project.createApiGeneratorTask() = tasks.register(API_GENERATOR_CONFIG) { + private fun Project.createApiGeneratorTask(): Task = tasks.create(API_GENERATOR_CONFIG).doLast { + val extension = getExtension() val pathToApiSchemes = extension.pathToApiSchemes ?: throw IllegalStateException("Configure path to api schemes for api generator plugin") val outputLanguage = extension.outputLanguage ?: throw IllegalStateException("Configure output language code for api generator plugin") - outputs.files(files(pathToApiSchemes).asFileTree.files) - - doLast { - javaexec { - mainClass.set("-jar") - workingDir = rootDir - args = listOfNotNull( - "--add-opens", - "java.base/java.lang=ALL-UNNAMED", - "--add-opens", - "java.base/java.time=ALL-UNNAMED", - configurations.getByName("apiGenerator").asPath, - "generate-client-code", - "--output-language", - outputLanguage.argName, - "--specification-path", - pathToApiSchemes, - "--kotlin-methods-generation-mode".takeIf { outputLanguage.methodOutputType != null }, - outputLanguage.methodOutputType?.argName, - "--output-path", - extension.outputDirPath, - "--package-name", - extension.outputPackageName, - "--recreate_output_dirs", - extension.recreateOutputDir.toString(), - ) - } + javaexec { + main = "-jar" + workingDir = rootDir + args = listOfNotNull( + configurations.getByName("apiGenerator").asPath, + "generate-client-code", + "--output-language", + outputLanguage.argName, + "--specification-path", + pathToApiSchemes, + "--kotlin-methods-generation-mode".takeIf { outputLanguage.methodOutputType != null }, + outputLanguage.methodOutputType?.argName, + "--output-path", + extension.outputDirPath, + "--package-name", + extension.outputPackageName, + "--recreate_output_dirs", + extension.recreateOutputDir.toString() + ) } } diff --git a/gradle/scripts/stringGenerator.gradle b/gradle/scripts/stringGenerator.gradle index 76f6266..9c47e90 100644 --- a/gradle/scripts/stringGenerator.gradle +++ b/gradle/scripts/stringGenerator.gradle @@ -1,15 +1,9 @@ import groovy.json.JsonSlurper import groovy.xml.MarkupBuilder -tasks.register('stringGenerator') { - Map sources = android.languageMap - - outputs.files(sources) - - doFirst { - generate(sources, project) - println("Strings generated!") - } +task stringGenerator { + generate(android.languageMap, project) + println("Strings generated!") } private def generate(Map sources, Project project) {