我对云相当陌生
SBT/IntelliJ
,所以试试我的运气
IntelliJ & SBT
构建在dataproc集群上部署jar的环境。
这是我的项目结构的屏幕截图:
代码非常简单,main定义在
'mytestmain'
调用中定义的另一个方法
'ReadYamlConfiguration'
这需要一个
moultingyaml
依赖性,我已将其包含在我的
build.sbt
.
这是我的
build.sbt
&
assembly.sbt
文件:
lazy val root = (project in file(".")).
settings(
name := "MyTestProjectNew",
version := "0.0.1-SNAPSHOT",
scalaVersion := "2.11.12",
mainClass in Compile := Some("com.test.processing.jobs.mytestmain.scala")
)
libraryDependencies ++= Seq(
"net.jcazevedo" %% "moultingyaml" % "0.4.2"
)
scalaSource in Compile := baseDirectory.value / "src"
组装.sbt
文件:
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.10")
我创造了
组装.sbt
创建优步jar,以包含所需的依赖关系和ran
'SBT assembly'
从终端。它已成功创建了一个程序集jar文件,我能够在Dataproc集群上成功部署和运行该文件。
gcloud dataproc jobs submit spark \
--cluster my-dataproc-cluster \
--region europe-north1 --class com.test.processing.jobs.mytestmain \
--jars gs://my-test-bucket/spark-jobs/MyTestProjectNew-assembly-0.0.1-SNAPSHOT.jar
代码按预期运行良好,没有问题。
现在我想有自己的自定义目录结构,如下所示:
例如,我想将文件夹名称设置为
'spark-job'
子目录名为
'SparkDataProcessing'
然后
src/main/scala
文件夹,其中包含包和相应的scala类和对象等。
我的主要方法在包中定义
'job'
在内部
'com.test.processing'
包裹。
我需要做哪些更改
build.sbt
?我正在寻找详细的解释
build.sbt
根据我的项目结构作为示例。另外,请建议所有需要包含的内容
gitignore
文件。
我正在使用
IntelliJ Idea 2020 community edition
和
SBT 1.3.3
版本。我在这里和那里尝试了很少的东西,但总是在结构、罐子或其他方面出现问题
build.sbt
问题。
我期待着一个类似的答案,这在下面的帖子中完成。
Why does my sourceDirectories setting have no effect in sbt?
如下图所示,源目录已更改。
spark-jobs/SparkDataProcessing/src/main/Scala
当我用下面的路径构建它时,它不起作用。
scalaSource in Compile := baseDirectory.value / "src"
当我保持默认结构时,它就起作用了。喜欢
src/main/scala