Scala REPL非常适合尝试不同的代码片段。如果能够在Scala REPL中使用来自Maven存储库的库运行代码,那就太棒了。如何将远程Maven存储库添加到Scala REPL类路径中?
Scala REPL非常适合尝试不同的代码片段。如果能够在Scala REPL中使用来自Maven存储库的库运行代码,那就太棒了。如何将远程Maven存储库添加到Scala REPL类路径中?
你可以使用maven-scala-plugin来完成它:
$ mvn scala:console
...
import com.some.dependency
sbt -sbt-create
set resolvers += "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"
set libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.2.3"
仅供测试:
sbt:test> console
[info] Updating ...
[info] Done updating.
[info] Starting scala interpreter...
Welcome to Scala 2.12.7 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_201).
Type in expressions for evaluation. Or try :help.
scala> import org.slf4j._
import org.slf4j._
scala> val logger = LoggerFactory.getLogger("Test")
logger: org.slf4j.Logger = Logger[Test]
scala> val logger = LoggerFactory.getLogger("Test")
logger: org.slf4j.Logger = Logger[Test]
sbt:test> session save
你的输出将保存在当前目录下的build.sbt中。
对于Linux/Mac
> cat build.sbt
适用于Windows(未经测试)
> type build.sbt
resolvers += "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"
libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.2.3"
build.sbt
(或.scala
,用于高级用途),您可以定义所有依赖项、生成IDE项目文件并运行带有所有依赖项的REPL。您可以使用build.sbt文件来测试您的代码。我不得不访问S3 Java代码才能在远程服务器上进行测试。
$ mkdir code-test
$ mkdir -p code-test/project
$ cd code-test
$
$ touch build.sbt
$
$ touch project/build.properties
$ echo 'sbt.version = 1.3.10' > project/build.properties
$
$ touch project/plugins.sbt
$ echo 'addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.7")' > project/plugins.sbt
在这里,我使用多个依赖项以及解析器来进行演示。
请随意根据您的需要填充build.sbt。
我的作为参考。
$ cat build.sbt
resolvers ++= Seq(
"Redshift" at "http://redshift-maven-repository.s3-website-us-east-1.amazonaws.com/release"
)
libraryDependencies ++= Seq(
"com.amazonaws" % "aws-java-sdk-s3" % "1.11.785",
"com.amazon.redshift" % "redshift-jdbc42" % "1.2.41.1065"
)
assemblyMergeStrategy in assembly := {
case PathList("META-INF", xs@_*) => MergeStrategy.discard
case x => MergeStrategy.first
}
$ sbt
[info] Loading project definition from /home/snk01/code-test/project
[info] Loading settings for project code-test from build.sbt ...
...
[info] Starting scala interpreter...
Welcome to Scala 2.12.10 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_181).
Type in expressions for evaluation. Or try :help.
$ sbt:code-test>
$ sbt:code-test> console
上面的代码会启动一个Scala repl,并在类路径中加载所有依赖项。
如果你正在尝试新的东西,我建议使用@Andrzej的方法。
致谢 - @Andrzej