Maven用Scala编译,bad symbolic reference. A signature in package.class refers to type compileTimeOnly

今天再用Maven来编写Spark程序的时候,在使用了SQLContext的API之后,每次编译就是不通过。看错误信息提示了bad symbolic reference. A signature in package.class refers to type compileTimeOnly。这个错误。在网上找了一大堆,都没有找到这个问题的真正解决方法。最后,无意中看了一个博客,最后解决了,所以在这里记录一下。在自己的pom文件里面加上这个。

 
    2.4.2
    2.10.6
    1.7.7
    2.11.1
    
    
        
            
                net.alchim31.maven
                scala-maven-plugin
                3.2.0
                
                    
                        compile-scala
                        compile
                        
                            add-source
                            compile
                        
                    
                    
                        test-compile-scala
                        test-compile
                        
                            add-source
                            testCompile
                        
                    
                
                
                    ${scala.version}
                
            
        
    


    
        org.apache.spark
        spark-core_2.10
        1.6.2
    

    
        org.scala-lang
        scala-reflect
        2.10.6
    


    
        org.scala-lang
        scala-library
        2.10.6
    

    
        org.scala-lang
        scala-compiler
        2.10.6
    

    
        com.typesafe.scala-logging
        scala-logging_2.11
        3.1.0
    


    
        org.apache.spark
        spark-sql_2.10
        1.6.2
    

之前只是加了Spark Core和Spark SQL的依赖。没有加scala方面的依赖。最后加入了scala相关的依赖后,就可以运行了。估计是打包的时候,Spark里面的依赖包用到了scala的资源。虽然你的项目中有scala配置。但是打包的时候,是用不到的。所以要在pom里面加上scala的相关依赖包。

你可能感兴趣的:(Maven用Scala编译,bad symbolic reference. A signature in package.class refers to type compileTimeOnly)