我有几个非常重要的作业,其中包含一堆常量和几个函数,这些函数在所有作业中都是一致的。当我需要对其中一个进行更改时,我不想在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出现在类路径中,但无法识别trait中的任何内容。我该怎么做?我需要编译constants.scala并引用这个类还是先将它编译成jar?有没有更好的办法?
对oop不是很有经验,所以希望我没有问一个非常基本/明显的问题。
谢谢。
1条答案
按热度按时间k97glaaz1#
是的,你应该编译一下
.jar
类路径中的文件,而不是.scala
或者.java
. 使用例如sbt来构建它们。