【问题标题】:sbt not setting javaOptions in a forked settingsbt 没有在分叉设置中设置 javaOptions
【发布时间】:2016-01-25 17:07:42
【问题描述】:

我正在尝试使用 Kamon 来检测我的服务器,这需要 Aspectj weaver。我正在使用 sbt 0.13.8

但是,这些选项不会传递给分叉的进程。

我看过这里:

https://github.com/eigengo/activator-akka-aspectj/blob/master/build.sbt

这里:

http://www.scala-sbt.org/0.13/docs/Forking.html

这是我的 build.sbt:

import sbt.Keys._

name := """myApp"""

version := "0.0.1"

lazy val root = (project in file(".")).enablePlugins(PlayScala)

scalaVersion := "2.11.6"

libraryDependencies ++= Seq(
  //jdbc, don not enable this when using slick
  cache,
  ws,
  specs2 % Test,
  "com.typesafe.akka" %% "akka-contrib" % "2.4.+",
  "org.scalatest" % "scalatest_2.11" % "2.2.4" % "test",
  "org.scalatestplus" %% "play" % "1.4.0-M3" % "test",
  "com.github.seratch" %% "awscala" % "0.5.+",
  "com.typesafe.play" %% "play-slick" % "1.1.1",
  "com.typesafe.play" %% "play-slick-evolutions" % "1.1.1",
  "mysql" % "mysql-connector-java" % "5.1.+",
  "commons-net" % "commons-net" % "3.3",
  "net.sourceforge.htmlcleaner" % "htmlcleaner" % "2.15",
  "io.strongtyped" %% "active-slick" % "0.3.3",
  "org.aspectj" % "aspectjweaver" % "1.8.8",
  "org.aspectj" % "aspectjrt" % "1.8.8",
  "io.kamon" %% "kamon-core" % "0.5.+",
//  "io.kamon" %% "kkamon-system-metrics" % "0.5.+",
  "io.kamon" %% "kamon-scala" % "0.5.+",
//  "io.kamon" %% "kamon-akka" % "0.5.+",
  "io.kamon" %% "kamon-datadog" % "0.5.+"
)

resolvers ++= Seq(
  "scalaz-bintray" at "http://dl.bintray.com/scalaz/releases"
)

// Play provides two styles of routers, one expects its actions to be injected, the
// other, legacy style, accesses its actions statically.
routesGenerator := InjectedRoutesGenerator

javaOptions in run += "-javaagent:" + System.getProperty("user.home") + "/.ivy2/cache/org.aspectj/aspectjweaver/jars/aspectjweaver-1.8.8.jar -Xmx:2G"
fork in run := true
connectInput in run := true

我尝试使用./activator start./activator stage 运行应用程序,然后运行脚本。

我做错了什么?

谢谢!

【问题讨论】:

  • 更新 - 能够使用 -J-javaagent:... 添加编织但为什么没有从构建文件中提取?
  • javaOptions in run 将影响run 任务(如sbt run),但不会自定义stage 任务生成的脚本。 AFAIK,不支持自定义生成由stage 创建的脚本。

标签: scala playframework-2.0 sbt aspectj akka-monitoring


【解决方案1】:

生产应用程序应在部署期间进行配置。这是我的启动脚本示例:

PARAMETERS="-Dconfig.file=conf/production.conf -Dlogger.file=conf/prod-logger.xml"
PARAMETERS="$PARAMETERS -Dhttp.port=9000"
PARAMETERS="$PARAMETERS -J-Xmx8g -J-Xms8g -J-server -J-verbose:gc -J-Xloggc:../logs/portal/gc.log -J-XX:+PrintGCDateStamps"

nohup bin/myApp $PARAMETERS  &

更多详情见Production Configuration

【讨论】:

    猜你喜欢
    • 2016-01-28
    • 2019-06-27
    • 1970-01-01
    • 1970-01-01
    • 2012-03-02
    • 2014-12-16
    • 2014-07-02
    • 2011-04-19
    • 1970-01-01
    相关资源
    最近更新 更多