feature add outputs for apiGenerator, stringGenerator
This commit is contained in:
parent
6df29f2101
commit
ab6a83aee0
|
|
@ -2,7 +2,6 @@ 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
|
||||
|
|
@ -44,32 +43,39 @@ abstract class ApiGeneratorPlugin : Plugin<Project> {
|
|||
|
||||
protected fun Project.getExtension(): ApiGeneratorExtension = extensions.getByName(API_GENERATOR_EXT_NAME) as ApiGeneratorExtension
|
||||
|
||||
private fun Project.createApiGeneratorTask(): Task = tasks.create(API_GENERATOR_CONFIG).doLast {
|
||||
|
||||
private fun Project.createApiGeneratorTask() = tasks.register(API_GENERATOR_CONFIG) {
|
||||
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")
|
||||
|
||||
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()
|
||||
)
|
||||
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(),
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,15 @@
|
|||
import groovy.json.JsonSlurper
|
||||
import groovy.xml.MarkupBuilder
|
||||
|
||||
task stringGenerator {
|
||||
generate(android.languageMap, project)
|
||||
println("Strings generated!")
|
||||
tasks.register('stringGenerator') {
|
||||
Map<String, String> sources = android.languageMap
|
||||
|
||||
outputs.files(sources)
|
||||
|
||||
doFirst {
|
||||
generate(sources, project)
|
||||
println("Strings generated!")
|
||||
}
|
||||
}
|
||||
|
||||
private def generate(Map<String, String> sources, Project project) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue