我有几个滚烫的作业,它们包含一堆常量和一些函数,它们在所有作业中都是一致的。当我需要更改其中的一个时,我不想在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.scalaconstants.scala出现在类路径中,但特征中的任何内容都不被识别。我该怎么做呢?我是否需要编译constants.scala并引用该类,或者首先将其编译成jar?有没有更好的方法来解决这个问题呢?
我对OOP没有太多的经验,所以我希望我不会问一个非常基本/显而易见的问题。
谢谢。
发布于 2015-01-30 00:28:13
是的,您应该在类路径中编译.jar文件,而不是在.scala或.java中。例如,使用SBT来构建它们。
https://stackoverflow.com/questions/28219073
复制相似问题