目前我的整个工作周期是:
编辑foo.scala
fsc foo.scala && scala -cp.FooMain
但是我的项目变得越来越大,我想分割文件,进行单元测试等等.但是我懒得阅读sbt文档并做任何需要做的事来获得sbt的"Makefile".类似的单元测试(有很多框架可供选择?)
什么使我的一天是一个简单的压缩虚拟项目与虚拟单元测试使用sbt.
你知道这样的事情是否存在吗?
那么,你应该使用SBT.您不需要为它编写任何内容:它将创建基本项目所需的所有内容,并且只询问您项目名称是什么以及您将使用的Scala版本.
之后,只需将文件放在正确的位置即可.查找目录布局,虽然简短的答案是主要的源文件src/main/scala
和测试源文件src/test/scala
.您将要创建一个非常小的"生成文件"得到的测试库,虽然.
更新的答案(2016)
这些天,你有了Giter8项目,结合sbt的启动器版本0.13.13或更高版本及其命令new
.
sbt new ...
原始答案(2010)
是的,存在这样一个基于sbt的模板项目,包括scala测试,
请参阅Scala,Sbt和Eclipse入门及其模板项目.
1)克隆或从sbt-console-template下载/提取源代码
% git clone git://github.com/mgutz/sbt-console-template.git your-project
2)从sbt控制台
# update dependencies > update # run project > run # test project continuously > ~test # eclipsify > eclipse
("eclipse"部分是可选的,只有在你想从你的sbt项目中生成Scala eclipse项目时才会这里)
另一个Scala模板项目:
使用Maven从头开始构建混合的Scala 2.8/Java应用程序
它使用以下模板(这是带有完整Maven-Scala项目的zip文件):
+-scalajavatut/ +-pom.xml +-src/ | +-main/ | | +-java/ | | | +-de/ | | | +-mackaz/ | | | +-HelloScala.java | | +-scala/ | | +-de/ | | +-mackaz/ | | +-App.scala | +-test/ | +-scala/ | +-de/ | +-mackaz/ | +-AppTest.scala | +-MySpec.scala
以下内容pom.xml
:
4.0.0 de.mackaz tutorial1 1.0-SNAPSHOT 2008 UTF-8 2.8.0-SNAPSHOT scala-tools.org Scala-Tools Maven2 Repository http://scala-tools.org/repo-releases scala-tools.org.snapshots Scala Tools Maven2 Repository http://scala-tools.org/repo-snapshots scala-tools.org Scala-Tools Maven2 Repository http://scala-tools.org/repo-releases org.scala-lang scala-library ${scala.version} junit junit 4.4 test org.scala-tools.testing specs 1.6.1-2.8.0.Beta1-RC1 test org.scala-tools maven-scala-plugin 2.13.1 compile compile compile test-compile testCompile test-compile process-resources compile ${scala.version} myLauncher de.mackaz.App -target:jvm-1.5 -make:transitivenocp -dependencyfile ${project.build.directory}/.scala_dependencies org.apache.maven.plugins maven-eclipse-plugin true ch.epfl.lamp.sdt.core.scalabuilder ch.epfl.lamp.sdt.core.scalanature org.eclipse.jdt.launching.JRE_CONTAINER ch.epfl.lamp.sdt.launching.SCALA_CONTAINER org.scala-tools maven-scala-plugin ${scala.version}
你可以运行它:
mvn scala:run
在输出结束时你应该看到
[INFO] launcher 'myLauncher' selected => de.mackaz.App Hello from Java Scala says: Hello from Scala! [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 7 seconds [INFO] Finished at: Wed Mar 24 18:14:22 CET 2010 [INFO] Final Memory: 14M/33M [INFO] ------------------------------------------------------------------------
在Fanf的博客中,Francois Armand提出:
用于Scala的Maven2 bootstrap pom.xml,带有SLF4J和no-commons-logging
4.0.0 org.test test jar 0.1-SNAPSHOT UTF-8 1.6.0 0.9.20 2.8.0.RC2 2.13.1 Starting pom scala-tools.org Scala-tools Maven2 Repository http://scala-tools.org/repo-releases scala-snapshots.org Scala-tools Maven2 Repository snapshots http://scala-tools.org/repo-snapshots no-commons-logging No-commons-logging Maven Repository default http://no-commons-logging.zapto.org/mvn2 false scala-tools.org Scala-tools Maven2 Repository http://scala-tools.org/repo-releases false scala-snapshots.org Scala-tools Maven2 Repository snapshots http://scala-tools.org/repo-snapshots src/main/scala src/test/scala org.scala-tools maven-scala-plugin ${scala-maven-plugin-version} compile testCompile -target:jvm-1.5 -make:transitivenocp -dependencyfile ${project.build.directory}/.scala_dependencies -client -Xmx1G org.apache.maven.plugins maven-compiler-plugin 2.1 org.scala-lang scala-library ${scala-version} joda-time joda-time 1.6 junit junit 4.7 test commons-logging commons-logging 99.0-does-not-exist commons-logging commons-logging-api 99.0-does-not-exist org.slf4j jcl-over-slf4j ${slf4j-version} org.slf4j slf4j-api ${slf4j-version} ch.qos.logback logback-core ${logback-version} ch.qos.logback logback-classic ${logback-version}