繁体   English   中英

如何使用Boot Gradle插件在Spring Boot应用程序中嵌入JavaAgent

[英]How to embed a javaagent in spring boot app using boot gradle plugin

我正在为我的spring boot应用程序使用javaagent,目前正在通过

java -javaagent:agent.jar -jar app.jar

我的项目是gradle项目,我想将agent.jar嵌入到app.jar中,这样我就可以像

java -javaagent:app.jar -jar app.jar

它可以通过启动Maven插件来完成这里提到- https://jeroendruwe.be/spring-boot-and-new-relic/ ,但没有办法,对于引导gradle这个插件。 我找到的最接近的是这个-https://jdpgrailsdev.github.io/blog/2014/04/08/spring_boot_gradle_newrelic.html ,但是它没有按预期的方式嵌入jar。

无论如何,可以通过gradle完成它吗?

可以从本地目录添加为依赖项jar。 “ libs”是项目内的目录。

依赖项{编译fileTree(dir:'libs',包括:'* .jar')}

摇篮罐:

jar {
manifest{
    attributes "Agent-Class" : "com.......agent.AgentTest"
    //attributes "Premain-Class" : "com.......agent.AgentTest"
        }
    }

虽然,我经常这样做:

    public static void main(String[] args) throws Exception {
    String pid = "6236";
    String agentPath = "...";
    VirtualMachine virtualMachine = com.sun.tools.attach.VirtualMachine.attach(pid);
    virtualmachine.loadAgent("/home/aaa/Code/agent-1.0-SNAPSHOT.jar");
    virtualMachine.detach();
}

你试过了吗

java -Xbootclasspath=('your path'/app.jar or 'your path to libs'/agent.jar) -javaagent:'your path'/app.jar -jar 'your path'/app.jar

另一种方法:使用jar作为依赖项,并在Spring Boot应用程序jar中移动(或创建另一个)您的premain类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM