SBT Native Packager 的条件 JavaAgent 命令
Conditional JavaAgent Command for SBT Native Packager
我正在使用 scala、sbt、sbt-native-package 和潜在的 sbt-java-agent 在运行时有条件地激活 datadog java agent w/ kubernetes。
通过添加 dd-java-agent
作为依赖项并添加脚本片段,我可以仅在特定环境下激活 datadog。变量已设置,但这也将 dd-java-agent 添加到类路径中,我试图避免这种情况:
val DataDogAgentVersion = "0.70.0"
libraryDependencies += "com.datadoghq" % "dd-java-agent" % DataDogAgentVersion % "runtime"
bashScriptExtraDefines += """if [ "$DD_PROFILING_ENABLED" = "true" ]; then addJava "-javaagent:${app_home}/../lib/dd-java-agent-""" + DataDogAgentVersion + """.jar"; fi""""
有没有办法让 sbt 管理 dd-java-agent.jar 的下载,将这个 jar 包含在 lib
目录中(或者其他目录,如果是的话)需要),但从类路径中排除?
我试过使用 sbt-java-agent
将 jar 放在 dd-java-agent
目录中并从类路径中排除 jar,但我不知道如何包装 addJava
使用该插件时 if
检查中的语句。
感谢您提供的任何帮助!
我最终选择了 sbt-javaagent
插件以避免额外的代码将代理 jar 从插件自动处理的类路径中排除。
trick/hack是过滤掉默认的addJava -javaagent
line the sbt-javaagent
plugin adds automatically,然后追加一个新的脚本片段,只在某个环境下启用javaagent。变量已设置。
lazy val dataDogAgentName = "dd-java-agent"
lazy val dataDogAgentVersion = "0.70.0"
lazy val distProject = project
.enablePlugins(JavaAgent, JavaAppPackaging)
.settings(
javaAgents += "com.datadoghq" % dataDogAgentName % dataDogAgentVersion,
bashScriptExtraDefines := bashScriptExtraDefines.value.filterNot(_.contains("javaagent")) :+ s"""
|if [[ "$$DD_PROFILING_ENABLED" = "true" ]]; then
| addJava "-javaagent:$${app_home}/../$dataDogAgentName/$dataDogAgentName-$dataDogAgentVersion.jar";
|fi
|""".stripMargin,
)
我正在使用 scala、sbt、sbt-native-package 和潜在的 sbt-java-agent 在运行时有条件地激活 datadog java agent w/ kubernetes。
通过添加 dd-java-agent
作为依赖项并添加脚本片段,我可以仅在特定环境下激活 datadog。变量已设置,但这也将 dd-java-agent 添加到类路径中,我试图避免这种情况:
val DataDogAgentVersion = "0.70.0"
libraryDependencies += "com.datadoghq" % "dd-java-agent" % DataDogAgentVersion % "runtime"
bashScriptExtraDefines += """if [ "$DD_PROFILING_ENABLED" = "true" ]; then addJava "-javaagent:${app_home}/../lib/dd-java-agent-""" + DataDogAgentVersion + """.jar"; fi""""
有没有办法让 sbt 管理 dd-java-agent.jar 的下载,将这个 jar 包含在 lib
目录中(或者其他目录,如果是的话)需要),但从类路径中排除?
我试过使用 sbt-java-agent
将 jar 放在 dd-java-agent
目录中并从类路径中排除 jar,但我不知道如何包装 addJava
使用该插件时 if
检查中的语句。
感谢您提供的任何帮助!
我最终选择了 sbt-javaagent
插件以避免额外的代码将代理 jar 从插件自动处理的类路径中排除。
trick/hack是过滤掉默认的addJava -javaagent
line the sbt-javaagent
plugin adds automatically,然后追加一个新的脚本片段,只在某个环境下启用javaagent。变量已设置。
lazy val dataDogAgentName = "dd-java-agent"
lazy val dataDogAgentVersion = "0.70.0"
lazy val distProject = project
.enablePlugins(JavaAgent, JavaAppPackaging)
.settings(
javaAgents += "com.datadoghq" % dataDogAgentName % dataDogAgentVersion,
bashScriptExtraDefines := bashScriptExtraDefines.value.filterNot(_.contains("javaagent")) :+ s"""
|if [[ "$$DD_PROFILING_ENABLED" = "true" ]]; then
| addJava "-javaagent:$${app_home}/../$dataDogAgentName/$dataDogAgentName-$dataDogAgentVersion.jar";
|fi
|""".stripMargin,
)