我刚刚偶然发现了sbt-pack插件.开发流似乎很稳定.令我惊讶的是,我认为(引用sbt-pack的标题)"创建可分发的Scala包"的唯一插件.是sbt-assembly(在其他功能中).
插件之间的主要区别是什么?我什么时候应该使用另一个?
从Java 9开始,直接从scala脚本使用时,从Scala中调用java.sql中定义的对象会抛出java.lang.SecurityException.
Java Version: 10.0.1
Scala Version: 2.12.4
sbt Version: 1.2.0
Run Code Online (Sandbox Code Playgroud)
下面的屏幕截图是一个完整的最小工作示例,其中包含适用于工作和非工作版本的控制台输出.具体来说:将脚本代码复制到类中,并从该类运行它,可以解决问题.有没有办法编写直接使用对象的Scala脚本java.sql?
build.sbt
name := "mypackage"
version := "0.1"
scalaVersion := "2.12.4"
libraryDependencies += "org.postgresql" % "postgresql" % "42.2.4"
Run Code Online (Sandbox Code Playgroud)
broken-script.scala
import java.sql.{Connection, DriverManager}
import java.util.Properties
object Main {
private def url = "jdbc:postgresql://localhost:5432/postgres"
val credentials: Properties ={
val properties = new Properties()
properties.setProperty("user", "integration_test")
properties.setProperty("password", "integration-pass")
properties
}
def connect(): Connection =
DriverManager.getConnection(url, credentials)
def run(): Unit = {
connect()
}
}
Main.run()
Run Code Online (Sandbox Code Playgroud)
如下面的控制台输出所示,broken-script.scala遇到SecurityException.
brokenScript.scala Output …
我是 Spark 的新手,在学习这个框架时,我发现,据我所知,用 Scala 编写的 Spark 应用程序有两种运行方式:
我想知道这两种执行模式之间的区别可能是什么,尤其是当使用 sbt run 运行时,当它与 spark-submit 完美运行时,可能会抛出 java.lang.InterruptedException。
谢谢!