【问题标题】:aspectjWeaver with fat jaraspectjWeaver with fat jar
【发布时间】:2017-01-26 01:13:55
【问题描述】:

请您告诉我,一旦它在 fat jar 中,我如何引用 aspectjweaver,因为我必须在运行时引用相同的内容:

java -javaagent:aspectj-weaver.jar my-app.jar

我正在使用 sbt 程序集。

【问题讨论】:

  • 你想做什么?问题不清楚。您想从命令行中引用 aspectjweaver.jar,如问题所示,还是想在运行时以编程方式使用它?这两个选项完全不同。
  • 哦,顺便说一句:如果你可以控制你的胖 JAR - 你似乎是因为你设法将 aspectjweaver.jar 打包在其中 - 你为什么不简单地使用 AspectJ 编译时编织并将 aspectjrt.jar 放入胖 JAR 中?这要容易得多。
  • 我正在使用 kamon.io/introduction/get-started ,按照手动过程我可以使用 aspectj-weaver.jar,但正如您所建议的,我很想使用 aspectjrt.jar 进行编译时编织。我们正在使用基于 sbt 的构建过程,因此我们可以捆绑 aspectjrt.jar ,但不确定 Kamon.io 是否能够支持。

标签: sbt aspectj sbt-assembly


【解决方案1】:

我只是使用kamon-autoweavesbt-assemby 构建了一个简单的example 来制作一个胖罐子。当我们这样做时,我们需要注意merge strategyaop.xml 文件。 (这也适用于将AspectjWeaver 作为javaagent 传递时)

【讨论】:

    【解决方案2】:

    我继续使用 kamon-autoweave (https://github.com/kamon-io/Kamon/tree/master/kamon-autoweave) 以避免路径中出现 javaagent 和 jar 文件。

    【讨论】:

    • 您能否提供更多关于您是如何做到这一点的详细信息?
    • 我已经包含了 KamonAutoWeave ,例如在基于 sbt 的项目中添加以下作为依赖项:“io.kamon”%“kamon-autoweave_2.11”%“0.6.1”
      所以在组装过程中这个 jar 将与 fat jar 捆绑在一起。当您使用 java 或 java2 启动您的应用程序时,它将尝试查找 kamon.autoweave.Autoweave ,它是 kamon-autoweave 的一部分,并将启动 javaaganet。更多信息参考此代码:github.com/kamon-io/Kamon/blob/master/kamon-autoweave/src/main/…
    • 所以你说添加autoweave依赖就够了,正常运行jar就行了?或者您还需要从您的应用代码中执行一些操作,例如创建该类并在运行时的早期某处调用 attach 方法?
    • 从代理和编织的角度来看,这已经足够好了。是的,您必须启动 Kamon.start() 才能使用 Kamon,如果您发现任何问题,请告诉我,我可以在这里提供帮助。
    猜你喜欢
    • 1970-01-01
    • 2019-07-04
    • 2021-08-01
    • 1970-01-01
    • 2016-12-18
    • 2017-04-06
    • 2021-09-05
    • 2018-02-28
    • 2013-02-18
    相关资源
    最近更新 更多