import groovy.json.JsonSlurper
import com.squareup.javapoet.TypeSpec
import com.squareup.javapoet.JavaFile
class ConfigPlugin implements Plugin<Project> {
@Override
void apply(Project project) {
project.afterEvaluate {
//读取配置数据
File file = project.file("config.json");
if (!file.exists()) {
throw new Exception("config.json not exist!");
}
String json = file.text;
JsonSlurper jsonSlurper = new JsonSlurper();
def config = (Map<String, Map<String, String>>) jsonSlurper.parseText(json);
println("read config result is \n $config");
TypeSpec.Builder builder = TypeSpec.classBuilder("UpConfigData")
.addModifiers(Modifier.PUBLIC, Modifier.ABSTRACT)
JavaFile javaFile = JavaFile.builder("com.haier.uhome.uplus.plugin.uppermissionplugin.initdemo",
builder.build()).build()
File createFile = new File(project.projectDir, "src/main/java")
if (!createFile.exists()) {
createFile.mkdirs()
}
javaFile.writeTo(createFile)
println "[write to]: ${createFile.absolutePath}"
}
}
}
apply plugin: ConfigPlugin
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.squareup:javapoet:1.12.1'
}
}
dependencies {
implementation 'com.squareup:javapoet:1.12.1'
}
get the issue:
FAILURE: Build failed with an exception.
-
Where:
Script ‘/Users/long1/Downloads/InitDemo/app/config.gradle’ line: 18 -
What went wrong:
A problem occurred configuring project ‘:app’.
No such property: Modifier for class: ConfigPlugin
Caused by: groovy.lang.MissingPropertyException: No such property: Modifier for class: ConfigPlugin