Scala REPL非常适合尝试不同的代码片段。如果可以使用Scala REPL中Maven存储库中的库运行代码,那将是很棒的。如何将远程Maven存储库添加到Scala REPL类路径?
答案 0 :(得分:10)
您可以使用maven-scala-plugin:
执行此操作$ mvn scala:console
...
import com.some.dependency
答案 1 :(得分:1)
我在SBT中做一切非平凡的事情。在一个地方,SBT build.sbt
(或.scala
,用于高级用途),您可以定义所有依赖项,生成IDE项目文件并运行REPL,其中包含类路径中存在的所有依赖项。
答案 2 :(得分:0)
您可以从头开始-带有sbt-但没有build.sbt
首先创建sbt项目:
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]
如果您要保留设置,只需调用即可(您可以使用CRTL + D退出交互式控制台模式)
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"
答案 3 :(得分:0)
您可以仅使用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复制,并将所有依赖项加载到您的类路径中。
如果您要开始/尝试一些新的东西,我建议您使用@Andrzej的方法。
信用-@Andrzej