簡體   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