我正在尝试将我的SBT project发布到mvnrepository。我按照这些链接的说明进行操作:
http://www.scala-sbt.org/release/docs/Using-Sonatype.html,和 https://github.com/xerial/sbt-pack
当我将xerial sbt-sonatype插件添加到我的build.sbt
文件中时:
addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "1.1")
编译器给出了以下错误:
UNRESOLVED DEPENDENCIES
org.xerial.sbt#sbt-sonatype;1.1 not found
Note: Some unresolved dependencies have extra attributes. Check that these dependencies exist with the requested attributes.
[warn] org.xerial.sbt:sbt-sonatype:1.1 (scalaVersion=2.11, sbtVersion=0.13)
[warn]
[warn] Note: Unresolved dependencies path:
[warn] org.xerial.sbt:sbt-sonatype:1.1 (scalaVersion=2.11, sbtVersion=0.13) (/richstat/build.sbt#L56-57)
[warn] +- com.github.shafiquejamal:richstat_2.11:0.0.1
我的SBT版本是0.13,我使用的是Scala 2.11。我怎样才能解决这个问题?谢谢!
答案 0 :(得分:1)
您必须在lazy val formattedDF = df.withColumn("result_col", validateudf(df("id")))
val validateudf = udf((id: Int) => {
if(id == 1){
"ID IS EQUAL TO 1"
}
else if(id > 1){
validateId(id)
}
else{
"NO VALID RECORDS"
}
})
def validateId(id:Int) : String = {
if (id > 2) {
"ID IS GREATER THAN 2"
}
else {
"VALID RECORDS"
}
}
中添加插件,因为插件是元项目的依赖项,而不是您的库/应用程序。
检查sbt文档:Using Plugins。
另外关于sbt版本和Scala版本:Scala版本用于编译项目的代码(在你的情况下为2.11),并且sbt本身使用了Scala版本。后者由sbt版本决定:sbt-0.13使用Scala 2.10,sbt-1.0使用Scala 2.12。
P.S。我建议你更新到sbt-1.0.2:只需更改project/plugins.sbt
中的版本并使用sbt-sonatype 2.0。