当前位置: 首页 > 工具软件 > Scalding > 使用案例 >

java eclipse sbt_eclipse – 如何在sbt项目中声明对Scalding的依...

司徒焕
2023-12-01

我试图弄清楚如何为我自己的基于Scalding的项目创建build.sbt文件.

烫发源结构没有build.sbt文件.相反,它有project / Build.scala构建定义.

将我自己的sbt项目与Scalding集成的正确方法是什么,所以我也可以稍后在Eclipse中使用sbt-eclipse插件导入它?

更新:

对于以下代码:

import cascading.tuple.Fields

import com.twitter.scalding._

class Scan(args: Args) extends Job(args) {

val output = TextLine("tmp/out.txt")

val wordsList = List(

("john"),

("liza"),

("nina"),

("x"))

val orderedPipe =

IterableSource[(String)](wordsList, ('word))

.debug

.write(output)

}

使用此build.sbt:

name := "Scan"

version := "1.0"

libraryDependencies := Seq("com.twitter" %% "scalding" % "0.11.1")

我收到错误:

$sbt

[info] Loading global plugins from /home/test/.sbt/0.13/plugins

[info] Set current project to Scan (in build file:/home/test/Cascading/Scala/Scan/)

> compile

[info] Updating {file:/home/test/Cascading/Scala/Scan/}scan...

[info] Resolving org.fusesource.jansi#jansi;1.4 ...

[info] downloading http://repo1.maven.org/maven2/com/twitter/scalding_2.10/0.11.1/scalding_2.10-0.11.1.jar ...

[info] [SUCCESSFUL ] com.twitter#scalding_2.10;0.11.1!scalding_2.10.jar (641ms)

[info] Done updating.

[info] Compiling 1 Scala source to /home/test/Cascading/Scala/Scan/target/scala-2.10/classes...

[error] /home/test/Cascading/Scala/Scan/src/main/scala/Scan.scala:1: not found: object cascading

[error] import cascading.tuple.Fields

[error] ^

[error] /home/test/Cascading/Scala/Scan/src/main/scala/Scan.scala:2: object twitter is not a member of package com

[error] import com.twitter.scalding._

[error] ^

[error] /home/test/Cascading/Scala/Scan/src/main/scala/Scan.scala:5: not found: type Job

[error] class Scan(args: Args) extends Job(args) {

[error] ^

[error] /home/test/Cascading/Scala/Scan/src/main/scala/Scan.scala:5: not found: type Args

[error] class Scan(args: Args) extends Job(args) {

[error] ^

[error] /home/test/Cascading/Scala/Scan/src/main/scala/Scan.scala:5: too many arguments for constructor Object: ()Object

[error] class Scan(args: Args) extends Job(args) {

[error] ^

[error] /home/test/Cascading/Scala/Scan/src/main/scala/Scan.scala:6: not found: value TextLine

[error] val output = TextLine("tmp/out.txt")

[error] ^

[error] /home/test/Cascading/Scala/Scan/src/main/scala/Scan.scala:15: not found: value IterableSource

[error] IterableSource[(String)](wordsList, ('word))

[error] ^

[error] 7 errors found

[error] (compile:compile) Compilation failed

更新2

在做git clone git@github.com之后:twitter / scalding.git他们的存储库和sbt publishLocal我仍然有相同的编译错误.

但是添加两行你建议build.sbt允许我编译我的代码.所以下面的build.sbt确实有效,谢谢!

name := "BlockScan"

version := "1.0"

libraryDependencies := Seq("com.twitter" %% "scalding" % "0.11.1")

lazy val scaldingCore = ProjectRef(uri("https://github.com/twitter/scalding.git"), "scalding-core")

lazy val myProject = project in file(".") dependsOn scaldingCore

‘sbt eclipse’创建了Eclipse项目,它不能在Eclipse下编译并报告这些错误:

Project 'Scan' is missing required Java project: 'scalding-core'

More than one scala library found in the build path (/home/test/usr/eclipse-scala-3.0.3/configuration/org.eclipse.osgi/bundles/290/1/.cp/lib/scala-library.jar, /home/test/wks/Cascading/Scala/scalding/target/scala-2.9.3/scalding-assembly-0.10.0.jar).At least one has an incompatible version. Please update the project build path so it contains only compatible scala libraries.

scalacheck_2.9.3-1.10.0.jar is cross-compiled with an incompatible version of Scala (2.9.3).

specs_2.9.3-1.6.9.jar is cross-compiled with an incompatible version of Scala (2.9.3).

 类似资料: