【发布时间】:2014-03-10 20:58:53
【问题描述】:
如果项目在调试模式下运行,有没有办法有条件地禁用分叉:
sbt -jvm-debug 9999
然后在我的构建中:
fork in Test := {
//find a key that lets me know if debugging in set up
!isDebugging.value
}
【问题讨论】:
标签: sbt
如果项目在调试模式下运行,有没有办法有条件地禁用分叉:
sbt -jvm-debug 9999
然后在我的构建中:
fork in Test := {
//find a key that lets me know if debugging in set up
!isDebugging.value
}
【问题讨论】:
标签: sbt
Specifying flywayUrl through system property in SBT 应该会有所帮助。
将以下内容添加到build.sbt:
lazy val isDebugging = settingKey[Boolean]("true when xdebug is true; false otherwise")
isDebugging := System.getProperty("xdebug") == "true"
fork in Test := !isDebugging.value
当你执行sbt -Dxdebug=true 时,它会给你你想要的。
顺便说一句,我在 SBT 源代码中没有看到对 jvm-debug 的引用,但它确实在我用来启动它的 shell 脚本中。可能您必须更改 sbt-launch-lib.bash 以适应在设置 -Xdebug 时添加 xdebug 的更改。
【讨论】:
alias sbtd="usedebug=true sbt -jvm-debug 5005" 来启动调试器并设置了环境,现在当我使用该命令时它不会分叉
Jacek 的建议指向正确的方向,但对我不起作用(甚至根本不起作用?)。 System.getProperty 基本上无法检索由 sbt 的 Bash 脚本设置的 -Xdebug 标志 - 调用 System.getProperties 时,-Xdebug 未在此处列出,同样任何其他非标准 JVM 属性(例如 -Xmx)。
对我有用的是:
lazy val isDebug = settingKey[Boolean]("true when -Xdebug is set, false otherwise")
isDebug := ManagementFactory.getRuntimeMXBean.getInputArguments.contains("-Xdebug")
fork in Test := !isDebug.value
干杯!
【讨论】: