我使用的是play 2.3.7,当fork in Test := false在我的build.sbt中运行时,conf文件不会被play加载。
在运行测试时,我的build.sbt中的行build.sbt应该加载test.conf,但这没有发生。
解决方法是在命令行上运行激活程序并传递上述参数,如下所示:
activator -Dconfig.file=conf/test.conf "test-only test.integration.SomeTest"
如果我删除了fork in Test := false,那么一切都很好,并且play找到了conf资源--但是我当然不能通
我只是想了解在scala项目中使用sbt-assembly插件生成jar时,下面两种设置JVM参数的方法有什么不同: // This works fine - no memory issues while building jar
set "JAVA_OPTS=-Xms2g -Xmx2g"
// in build.sbt
// Getting memory issues while building jar
javaOptions in assembly += "-Xms2g -Xmx2g" 谢谢,
我将单元测试的build.sbt配置为使用不同的Play (Scala2.3.9和SBT0.13.5)配置。
javaOptions in Test ++= Seq("-Dconfig.file=/home/kitty/acme/test/resources/test-application.conf")
Play没有拾取test-application.conf,而是使用conf中的application.conf。AFAIK,在这种情况下没有scalaOption。但是,如果我在命令行中包含-Dconfig.file,它就能正常工作,
sbt test -Dconfig.f
我正在尝试使用一些参数运行SBT项目。
sbt -Dbootstrap=true run
然而,我得到了下面的错误。
Warning: invalid system property 'bootstrap'
[error] Not a valid command: true (similar: start)
[error] Not a valid project ID: true
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: true (similar:
我在java项目中使用sbt作为开发例程,在运行测试时使用。但默认情况下,它会忽略assert语句(assert用于检查底层代码中的某些不变量)。例如,此测试通过:
@Test
public void test() {
// this is example; In reality assertion somewhere in code under test
assert false; // not assertTrue(or whatever) from junit
}
我的build.sbt文件非常简单:
organization := "Kharandziuk"
我无法处理我的Play 2.6应用的测试配置。我有一个规范,签名如下:
class ChannelsComponentSpec extends PlaySpec with ServicesSpec with GuiceOneAppPerSuite {
val environment = app.environment.asJava
val servicesModule: ServicesModule = app.injector.instanceOf[ServicesModule]
我的测试因缺少基本替换而中止:
[info] com.typesafe.config.Config
我尝试在build.scala中定义JAVA_OPTS,以便为运行和测试任务指定调试端口和配置文件,但它不起作用。我先启动activator,然后启动run或test。这是我的build.sbt:
name := "machinchose"
version := "1.0-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayJava)
scalaVersion := "2.11.1"
libraryDependencies ++= Seq(
我使用ant来构建我的项目,这个项目需要比默认JVM大小更多的内存,所以我在build.xml文件中添加了以下代码行。
<!-- setting up this value as project need this much memory to compile.-->
<property environment="env" />
<property name="env.ANT_OPTS" value="-Xms1024m -Xmx204888m" />
但上面的代码行似乎没有任何影响,因为我仍然得到堆大小的问
如果我在没有Docker的情况下运行我的应用程序,我会这样做:
./myapp -Dconfig.file=conf/application.prod.conf -Dlogger.resource=logback.prod.xml
实际上,我可以做得更好,将它们放到build.sbt文件中:
// Production Mode
javaOptions in Production ++= Seq(
"-Dconfig.file=conf/application.prod.conf",
"-Dlogger.resource=logback.prod.xml"
我想创建sbt跨平台(Hello world app ),包括JVM,Scala Native,Android和scalajs,我已经成功编译了除了android之外的所有平台,这是我的build.sbt: name := "Cross-Platforms-ScalaNative-JVM"
import sbtcrossproject.CrossPlugin.autoImport.{crossProject, CrossType}
val sharedSettings = Seq(scalaVersion := "2.11.12")
lazy val b
我将一些javaOptions放在build.sbt中,这是在运行测试时使用的。这些都如预期的那样起作用。
javaOptions in Test += "-Dconfig.file=conf/test.conf"
javaOptions in Test += "-Duser.timezone=UTC"
我也想在运行时使用类似的东西。我试过以下几种方法,但它们根本不起作用:
javaOptions in Runtime += "-Duser.timezone=UTC"
javaOptions in run += "-Duser.timez
我在Akka中有一个生产应用程序,我从以下选项开始:
-Djava.library.path="./native/"
(使用包含库libsigar-amd64-linux.so的libsigar-amd64-linux.so目录),一切都很好。
当我输入sbt test时,我面临以下错误:
[executorTest-akka.actor.default-dispatcher-13] DEBUG Sigar - no libsigar-amd64-linux.so in java.library.path
org.hyperic.sigar.SigarException: n
如何强制SBT编译为Java 8类文件。我添加了scalacOptions目标“- +=:jvm-1.8”,但它给出了以下错误消息:
[error] 'jvm-1.8' is not a valid choice for '-target'
[error] bad option: '-target:jvm-1.8'
[error] (compile:compile) Compilation failed
我使用的是SBT版本0.15.5。
我知道在我将这段代码添加到build.sbt中时,我正在使用Java8进行编译,但是我仍然想知道为什么sca
我正在尝试用Play 2.2.2和SBT 0.13.1设置多模块开发环境
我的项目结构如下:
myProject
└ build.sbt
└ app - this code works perfect
└ modules
└ testModule
└ build.sbt
└ src
└ main
└ scala - here I have simple object Foo with method which returns string
└ test
└ scala - here is Spec2
什么是
IntelliJ IDEA 2016.1.1
Build #IU-145.597, built on March 29, 2016
JRE: 1.8.0_40-release-b132 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Scala Plugin Version: 3.0.2
用于确定根模块的名称?
我一直认为它使用了在name := "[name]"文件中定义的build.sbt来命名根模块,但是我当前的SBT项目(它使用Scala.JS CrossProject)会后退/使用父目录名(见图1
在使用sbt运行测试时,我尝试调试我的Scala应用程序。我在build.sbt中添加了以下几行:
javaOptions in test ++= Seq(
"-Xdebug",
"-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8001"
)
我还在Eclipse中设置了断点,并为该端口8001配置了远程调试器。
从命令行启动测试时,远程调试器正确启动:
Listening for transport dt_socket at address: 8001
但是,测试的执行并没有像预期的那