Scala SBT本机打包程序的条件JavaAgent命令

Scala SBT本机打包程序的条件JavaAgent命令,scala,sbt,javaagents,datadog,sbt-native-packager,Scala,Sbt,Javaagents,Datadog,Sbt Native Packager,我正在使用scala、sbt、sbt原生包和潜在的sbt java代理在运行时有条件地激活datadog java代理,其中包含kubernetes 通过添加ddjava代理作为依赖项并添加脚本片段,我能够仅在特定环境发生变化时激活datadog。变量已设置,但这也将dd java代理添加到类路径中,我试图避免: val DataDogAgentVersion=“0.70.0” libraryDependencies+=“com.datadoghq”%”dd java代理“%DataDogAge

我正在使用scala、sbt、sbt原生包和潜在的sbt java代理在运行时有条件地激活datadog java代理,其中包含kubernetes

通过添加
ddjava代理
作为依赖项并添加脚本片段,我能够仅在特定环境发生变化时激活datadog。变量已设置,但这也将dd java代理添加到类路径中,我试图避免:

val DataDogAgentVersion=“0.70.0” libraryDependencies+=“com.datadoghq”%”dd java代理“%DataDogAgentVersion%”运行时 bashScriptExtraDefines+=“如果[“$DD\u PROFILING\u ENABLED”=“true”];则添加java“-javaagent:${app\u 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从类路径中排除,该插件会自动处理该类路径

技巧/技巧是过滤掉默认值,然后附加一个新的脚本snippent,以仅在设置了某个env.变量时启用javaagent

lazy val dataDogAgentName=“dd java代理”
lazy val dataDogAgentVersion=“0.70.0”
惰性val distProject=project
.enablePlugins(JavaAgent、JavaAppPackaging)
.设置(
javaAgents+=“com.datadoghq”%dataDogAgentName%dataDogAgentVersion,
bashScriptExtraDefines:=bashScriptExtraDefines.value.filterNot(u512;.contains(“javaagent”)):+s“”
|如果[[“$$DD_PROFILING_ENABLED”=“true”];则
|addJava“-javaagent:$${app_home}/./$dataDogAgentName/$dataDogAgentName-$dataDogAgentVersion.jar”;
|fi
|“.stripMargin,
)

我最终使用了
sbt javaagent
插件,以避免额外的代码将代理jar从类路径中排除,该插件会自动处理该类路径

技巧/技巧是过滤掉默认值,然后附加一个新的脚本snippent,以仅在设置了某个env.变量时启用javaagent

lazy val dataDogAgentName=“dd java代理”
lazy val dataDogAgentVersion=“0.70.0”
惰性val distProject=project
.enablePlugins(JavaAgent、JavaAppPackaging)
.设置(
javaAgents+=“com.datadoghq”%dataDogAgentName%dataDogAgentVersion,
bashScriptExtraDefines:=bashScriptExtraDefines.value.filterNot(u512;.contains(“javaagent”)):+s“”
|如果[[“$$DD_PROFILING_ENABLED”=“true”];则
|addJava“-javaagent:$${app_home}/./$dataDogAgentName/$dataDogAgentName-$dataDogAgentVersion.jar”;
|fi
|“.stripMargin,
)

感谢您分享这篇文章,但最后您是如何传递代理参数的?
设置(javaAgents+=JavaAgent(“com.datadoghq”%dataDogAgentName%dataDogAgentVersion,arguments=“我的代理参数”))
->似乎在结尾处被覆盖,将它们直接放入自定义脚本也不起作用。您好@Xorr,在我的场景中,我不需要传递任何自定义参数,但我认为您可以通过在自定义脚本javaagent字符串末尾添加冒号来追加它们。
addJava“-javaagent:$${app_home}/../$dataDogAgentName/$dataDogAgentName-$dataDogAgentVersion.jar:自定义参数“
感谢您分享此信息,但最后您如何传递代理参数?
.settings(javaAgents+=JavaAgent(“com.datadoghq”%dataDogAgentName%dataDogAgentVersion,arguments=“my agent arguments”))
->似乎在结尾处被覆盖,将它们直接放入自定义脚本也不起作用。您好@Xorr,在我的场景中,我不需要传递任何自定义参数,但我认为您可以通过在自定义脚本javaagent字符串末尾添加冒号来追加它们。
addJava“-javaagent:$${app_home}/../$dataDogAgentName/$dataDogAgentName-$dataDogAgentVersion.jar:自定义参数“