, src/main/java/com/company/project/Config.java:
public class Config {
public static final boolean DEBUG = true;
...
}
Gradle, :
boolean production = hasProperty("roduction");
import java.util.regex.*
String filterDebugHelper(String line) {
Pattern pattern = Pattern.compile("(boolean\\s+DEBUG\\s*=\\s*)(true|false)(\\s*;)");
Matcher matcher = pattern.matcher(line);
if (matcher.find()) {
line = matcher.replaceFirst("\$1"+(production? "false": "true")+"\$3");
}
return (line);
}
task filterDebug(type: Copy) {
from ("${projectDir}/src/main/java/com/company/project") {
include "Config.java"
filter { String line -> filterDebugHelper(line) }
}
into "${buildDir}/tmp/filterJava"
}
sourceSets {
main {
java {
srcDirs ("${projectDir}/src/main/java", "${buildDir}/tmp/filterJava")
exclude ("com/company/project/Config.java")
}
resources {
}
}
}
compileJava {
dependsOn filterDebug
}
, , , , , / (build.gradle).