java - Gradle:以编程方式为 compileJava 任务指定编译器选项
问题描述
我有一个带有compileJava
任务的 gradle 脚本,我希望它提供两个不同的Jar
任务,jar
并且jarForce
. 该jarForce
任务应该编译带有-Awarns
选项的源代码,以便将注释处理器错误视为警告,并且该jar
任务应该使用默认参数运行编译,以便在出现任何注释处理器错误时编译失败。我怎样才能做到这一点?
解决方案
考虑以下内容,它将选项修改为在任务图compileJava
中的情况下:jarForce
apply plugin: 'java'
gradle.taskGraph.whenReady { taskGraph ->
if (taskGraph.hasTask(jarForce)) {
println "TRACER jarForce detected"
// we use verbose simply to illustrate that the options are changed
compileJava.options.compilerArgs << "-verbose"
compileJava.options.compilerArgs << "-Awarns"
}
}
task jarForce(dependsOn: 'jar') {
doFirst {
println "TRACER jarForce"
}
}
如果您执行gradle clean jar
vs gradle clean jarForce
,您会看到输出完全不同,因为我们使用-verbose
它作为示例。的使用-Awarns
留给读者。
推荐阅读
- javascript - 如何在具有固定宽度和高度的元素中显示图像
- javascript - 如何使用该方法: $().button('toggle') 用于此引导程序“单选按钮列表”?
- ios - Fabric 在“live app”上给出了“libc++abi.dylib”崩溃的报告,但我无法复制崩溃
- mysql - MariaDB ON DUPLICATE KEY UPDATE 自动增量
- python-3.x - 检查串口数据直到完成
- c++ - 使用 node 调用 C++ 时如何更改堆栈保留大小?
- forms - Asp.net core 2.1 - 来自表单的两个参数 HttpPost
- arrays - 使用内部数组解组 json 记录数组(所有整数)
- android-app-indexing - 应用索引问题 - 被索引的应用页面数量正在下降
- angular - 部署后从 URL 中删除 # 不起作用 - HTTP 404