diff --git a/gradle/plugins/src/main/java/apigen/ApiGeneratorAndroidPlugin.kt b/gradle/plugins/src/main/java/apigen/ApiGeneratorAndroidPlugin.kt index fa417b0..0442f43 100644 --- a/gradle/plugins/src/main/java/apigen/ApiGeneratorAndroidPlugin.kt +++ b/gradle/plugins/src/main/java/apigen/ApiGeneratorAndroidPlugin.kt @@ -1,8 +1,9 @@ package apigen +import com.android.build.gradle.AppExtension import com.android.build.gradle.LibraryExtension import org.gradle.api.Project -import org.gradle.kotlin.dsl.getByType +import org.gradle.kotlin.dsl.findByType import org.jetbrains.kotlin.gradle.tasks.KotlinCompile class ApiGeneratorAndroidPlugin : ApiGeneratorPlugin() { @@ -18,7 +19,12 @@ class ApiGeneratorAndroidPlugin : ApiGeneratorPlugin() { extension.recreateOutputDir = true afterEvaluate { - extensions.getByType().apply { + extensions.findByType()?.apply { + sourceSets.getByName("main") + .java + .srcDir(outputDir) + } + extensions.findByType()?.apply { sourceSets.getByName("main") .java .srcDir(outputDir) diff --git a/gradle/scripts/stringGenerator.gradle b/gradle/scripts/stringGenerator.gradle index 374ab12..9c47e90 100644 --- a/gradle/scripts/stringGenerator.gradle +++ b/gradle/scripts/stringGenerator.gradle @@ -2,11 +2,11 @@ import groovy.json.JsonSlurper import groovy.xml.MarkupBuilder task stringGenerator { - generate(android.languageMap, android.rootPath ?: "app") + generate(android.languageMap, project) println("Strings generated!") } -private def generate(Map sources, String rootPath) { +private def generate(Map sources, Project project) { if (sources == null || sources.isEmpty()) { throw new IOException("languageMap can't be null or empty") } @@ -31,7 +31,7 @@ private def generate(Map sources, String rootPath) { } } - def stringsFile = getFile(key, key == defaultLang, rootPath) + def stringsFile = getFile(key, key == defaultLang, project) stringsFile.write(sw.toString(), "UTF-8") } } @@ -69,15 +69,15 @@ private static Map getJsonsMap(Map sources) { } } -private static File getFile(String key, boolean defaultLang, String rootPath) { +private static File getFile(String key, boolean defaultLang, Project project) { if (defaultLang) { - return new File("${rootPath}/src/main/res/values/strings.xml") + return project.file("src/main/res/values/strings.xml") } else { - def directory = new File("${rootPath}/src/main/res/values-$key") + def directory = project.file("src/main/res/values-$key") if (!directory.exists()) { directory.mkdir() } - return new File("${rootPath}/src/main/res/values-$key/strings.xml") + return project.file("src/main/res/values-$key/strings.xml") } }