使用Scala 2.11反射时“涉及对象InterfaceAudience的非法循环引
发布时间:2020-12-16 18:28:58 所属栏目:安全 来源:网络整理
导读:我在 scala 2.11.7上遇到了上述错误: def main(args: Array[String]): Unit = { val x = typeOf[ org.apache.hadoop.io.Writable ] println( x )} 我的编译过程的其他信息: 我已经缩小到重现所需的最低限度: 我有一个build.gradle项目,如下所示: buildsc
我在
scala 2.11.7上遇到了上述错误:
def main(args: Array[String]): Unit = { val x = typeOf[ org.apache.hadoop.io.Writable ] println( x ) } 我的编译过程的其他信息: 我已经缩小到重现所需的最低限度: 我有一个build.gradle项目,如下所示: buildscript { repositories { mavenCentral() maven { name 'Shadow' url 'http://dl.bintray.com/content/johnrengelman/gradle- plugins' } } dependencies { classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.1' } } apply plugin: 'com.github.johnrengelman.shadow' apply plugin: 'scala' repositories { mavenCentral() } dependencies { compile group: 'org.scala-lang',name: 'scala-library',version: '2.11.7' compile group: 'org.scala-lang',name: 'scala-reflect',version: '2.11.7' compile( "org.apache.hadoop:hadoop-common:2.4.0" ) } 这是我的主要内容: import scala.reflect.runtime.universe._ object Test { def main(args: Array[String]): Unit = { val x = typeOf[ org.apache.hadoop.io.Writable ] println( x ) } } 建筑用: gradle clean shadow 生成一个包含所有依赖项的jar. java -cp ./build/libs/uber.jar Test 结果出现上述异常 解决方法
Scala似乎在反映Hadoop注释时失败,例如: InterfaceAnnotations.解决方案是排除hadoop-annotations依赖:
configurations { all*.exclude group: 'org.apache.hadoop',module: 'hadoop-annotations' } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |