烫伤:从单独的文件中添加特征

时间:2015-01-29 15:58:08

标签: scala hadoop scalding

我有几个烫金工作,其中包含一堆常量和一些在所有工作中保持一致的功能。当我需要对其中一个进行更改时,我不想在5个不同的地方进行更改。我想创建一个可存储这些东西的特性,但我无法将特征引用/导入我的工作。

所以我有一个名为constants.scala的文件,其中包含:

 trait constants {a bunch of stuff defined here}

在我的一个名为myJob.scala的工作中,我试着定义一个这样的类:

class TrxnAmts(args : Args) extends Job(args) with constants {
    All my other code goes here
}

我尝试在HDFS中运行myJob,使用以下命令将constants.scala添加到类路径中:

scalding/scripts/scald.rb --hdfs --cp /path/to/constants.scala /path/to/myJob.scala

constants.scala出现在类路径中,但特征中没有任何内容被识别。我该如何工作?我是否需要编译constants.scala并引用该类或首先将其编译成jar?有没有更好的方法来解决这个问题?

对OOP不是很有经验,所以我希望我不会问一个非常基本/明显的问题。

感谢。

1 个答案:

答案 0 :(得分:1)

是的,您应该在类路径中编译.jar个文件,而不是.scala.java。 使用例如SBT构建它们。