如何使用Gradle抑制“警告:忽略匿名内部类的InnerClasses属性?”
./gradlew assembleDebug
(因为这是assertj-core
- ./gradlew testDebug
)相关性:
dependencies {
testCompile "org.assertj:assertj-core:1.7.1"
}
警告:
Dex: warning: Ignoring InnerClasses attribute for an anonymous inner class
(org.assertj.core.internal.cglib.reflect.FastClassEmitter$3) that doesn't come with an
associated EnclosingMethod attribute. This class was probably produced by a
compiler that did not target the modern .class file format. The recommended
solution is to recompile the class from source, using an up-to-date compiler
and without specifying any "-target" type options. The consequence of ignoring
this warning is that reflective operations on this class will incorrectly
indicate that it is *not* an inner class.
类似:
tasks.withType(JavaCompile) {
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
configure(options) {
compilerArgs << "-Xlint:-options" // Turn off "missing" bootclasspath warning
}
}
我可以添加哪些compilerArgs
来抑制此警告?
参考文献:
答案 0 :(得分:1)
我之前尝试使用第三方库时遇到了同样的问题。该lib是为Java 1.3编译的。我能够通过获取该lib的源代码并自行构建一个jar文件来修复它。当然,只有当lib的源可用并且可以构建时,这才有效。
答案 1 :(得分:0)
@SuppressWarnings("unchecked")
无济于事?
更多例子如下:
http://www.codejava.net/java-core/the-java-language/suppresswarnings-annotation-examples