4
工作在我Leiningen項目中,我有以下配置:Leiningen Java的代理商不uberjar
:java-agents [[com.newrelic.agent.java/newrelic-agent "3.19.2"]]
當運行我的應用程序在lein repl
代理正在運行,但是當我創建uberjar並運行它如:
java -jar target/proclodo-spa-server-rendering.jar
代理程序未啓動。我可以在我的uberjar中包含newrelic-agent.jar並傳遞-javaagent參數,但我試圖避免在我的存儲庫中存在大量不會自動升級的大型二進制Blob(爲什麼New Relic甚至推薦?)。我嘗試添加:
:bootclasspath true
由於此評論:
;; Java agents can instrument and intercept certain VM features. Include
;; :bootclasspath true to place the agent jar on the bootstrap classpath.
,但它並沒有區別。代理jar應該如何放置在CLASSPATH中,以便我可以驗證它是否正常工作?
我正在使用Jetty,據說它會干擾bootclasspath
,但我不確定它應該如何幹涉。一切似乎都運行良好,只是代理商沒有啓動。
做什麼:bootclasspath然後呢?這個罐子似乎不在我的uberjar裏面。如何在沒有jar的情況下通過我的回購?這是不好的 – Pablo
@Pablo這些真的是兩個新問題,而不是這一個的跟進。但是,簡單地說:一旦你使用leiningen來構建一個jar,就像其他任何基於java的jar一樣,你有一個jar,你可以在運行jar時查看如何設置agent;它不再是clojure特定的。如果您希望在您的部署環境中使用代理程序,則需要安排代理程序jar在那裏存在,並且還需要安排要傳遞的java-agent參數。 – amalloy
例如,由於您使用newrelic,因此在運行時如何使用https://docs.newrelic.com/docs/agents/java-agent/installation/java-agent-manual-installation似乎是一個相當全面的解釋一個罐子。 – amalloy