Har*_*man 5 scala scala-reflect
我在scala 2.11.7上遇到了上述错误:
def main(args: Array[String]): Unit = {
val x = typeOf[ org.apache.hadoop.io.Writable ]
println( x )
}
Run Code Online (Sandbox Code Playgroud)
我的编译过程的其他信息:
我已经缩小到重现所需的最低限度:
我有一个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" )
}
Run Code Online (Sandbox Code Playgroud)
这是我的主要内容:
import scala.reflect.runtime.universe._
object Test
{
def main(args: Array[String]): Unit = {
val x = typeOf[ org.apache.hadoop.io.Writable ]
println( x )
}
}
Run Code Online (Sandbox Code Playgroud)
建筑用:
gradle clean shadow
Run Code Online (Sandbox Code Playgroud)
生成一个包含所有依赖项的jar.
java -cp ./build/libs/uber.jar Test
Run Code Online (Sandbox Code Playgroud)
结果出现上述异常
Scala 似乎无法反映 Hadoop 注释,例如InterfaceAnnotations. 解决方案是排除hadoop-annotations依赖:
configurations {
all*.exclude group: 'org.apache.hadoop', module: 'hadoop-annotations'
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
612 次 |
| 最近记录: |