如何通过Gradle将-parameters javac标志传递给Java编译器?

时间:2016-05-26 14:34:54

标签: gradle javac

我有一个Gradle管理的多项目设置,它依赖于新的Java 8 var arr = new Array(); arr = [50,100,30,40,80,10,1]; var z = arr.sort(); console.error(z); 编译器标志。我需要两种方法来包含编译器标志:

  • 仅测试类(主项目应编译时不附加参数名称)。
  • 致所有已编辑的来源。

我试过这个:

-parameters

...但它似乎没有正常工作。

4 个答案:

答案 0 :(得分:17)

您应该使用配置Java编译插件的标准方法:

apply plugin: 'java'

compileJava {
    options.compilerArgs << '-parameters'
}

答案 1 :(得分:6)

对于Android项目,可以添加例如在gradle android范围的下面。

// Used to get more info from dagger regarding binding compile errors
// see https://github.com/google/dagger/wiki/Dagger-2.17-@Binds-bugs
tasks.withType(JavaCompile) {
    options.compilerArgs += ["-Adagger.floatingBindsMethods=enabled"]
}

答案 2 :(得分:0)

@Crazyjavahacking的答案是正确的

另外,请检查是否在使用其他args(在我的情况下为mapstruct)的子项目中像我一样重新定义它:

options.compilerArgs = ['-Amapstruct.defaultComponentModel=spring'] // do not do this

始终附加参数options.compilerArgs << '-Amapstruct.defaultComponentModel=spring'

希望它可以节省一些时间,因为我在子项目中完全忘记了这条线,而将精力集中在主要的build.gradle上,所以我个人损失了2个小时。

答案 3 :(得分:-1)

compileJava {
  options.compilerArgs.addAll(['--release', javaVersion])
}