gpt4 book ai didi

java - 如何使用 3rd 方库依赖项部署 javaagent

转载 作者:行者123 更新时间:2023-11-30 07:59:43 25 4
gpt4 key购买 nike

我们编写了一个 javaagent 来帮助开发人员调试。但是,在发布这个工具之前,我们对 java-agent 的部署还有一些疑问。

用户可以将代理与某些 tomcat 应用程序一起使用。代理使用 Premain 方法来转换类。我们使用 javassist 3.18.2-GA 来插入代码。我们目前将 javassist.jar 添加到 MANIFEST.MF 中的 Boot-Class-Path 中。并且我们把agent和javassist.jar都放到tomcat的lib目录下。

问题是:

  1. 嗯,至少,它有效。但这是为 tomcat 应用程序部署代理和依赖项的正确方法吗?
  2. 因为大多数使用 hibernate 的 tomcat 应用程序也使用 javassist 3.18.2-GA,所以现在没问题。但据我了解,3.20 与 3.18.2 并不完全兼容。建议有人将 javassist 更新到更高版本,代理或应用程序是否会由于 2 个不同的 javassist 之间的冲突而崩溃。

最佳答案

javaagent 已添加并在 VM 的类路径上运行。因此,您有以下选择:

  1. 在启动 VM 时将依赖项添加到类路径,就像部署普通应用程序一样。对于像 Tomcat 这样的应用程序容器,这将是此类依赖项的适当目录。
  2. 使用 fatjar 等工具将依赖项与代理捆绑在一起。这样做,您还可以使用 Maven Shade 插件将依赖项转移到不同的命名空间以避免版本冲突。
  3. 使用Instrumentation API在运行实际代理应用程序之前手动附加依赖项。

关于java - 如何使用 3rd 方库依赖项部署 javaagent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39113314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com