我正在为intellij编写一个插件,我想以编程方式更改Intellij项目的build.gradle文件。
我想添加
sourceSets {
resources {
srcDir 'src/resources'
}
}
在build.gradle文件中的android
对象内(这是一个android项目)
我意识到我必须做一些事情
GradleBuildFile gradleBuildFile = GradleBuildFile.get(module);
GrStatementOwner closure = gradleBuildFile.getClosure("android/sourceSets/main/resources");
gradleBuildFile.setValue(closure, BuildFileKey.SRC_DIR, "blah");
问题是,没有BuildFileKey.SRC_DIR
,我找不到类似的东西。
另外,如果在build.gradle文件中没有sourceSets
对象,它会添加吗?
有什么建议吗?
由于
更新 或者,有没有办法将文件夹标记为资源文件夹?我不想使用默认的res文件夹。也许使用AndroidFacet对象..
答案 0 :(得分:0)
好问题。我需要做同样的事情,但是一直在使用粗糙的FileWriter。只要有效:S
public void actionPerformed(AnActionEvent event) {
Project project = event.getProject();
String buildFilePath = project.getBasePath() + "\\app\\build.gradle";
BufferedReader br_build = new BufferedReader(new FileReader(buildFilePath));
String newBuildFile = "";
String line;
while ((line = br_build.readLine()) != null) {
newBuildFile += line + "\n";
if (line.contains("android {")){
newBuildFile += "// Add your stuff here\n" +
"sourceSets {\n" +
" resources {\n" +
" srcDir 'src/resources'\n" +
" }\n" +
"}\n";
}
}
br_build.close();
FileWriter fw_build = new FileWriter(buildFilePath);
fw_build.write(newBuildFile);
fw_build.close();
}