2015-09-02 5 views
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 

Агент не начат. Я мог бы включить newrelic-agent.jar в свой uberjar и передать аргумент -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. 

, но это не имело никакого значения. Как должен быть помещен контейнер-агент в CLASSPATH, чтобы я мог проверить его работу?

Я использую Jetty, который, как говорят, вмешивается в bootclasspath, но я не уверен, как это должно мешать. Кажется, все работает нормально, только агент не запускается.

ответ

0

Если вы запустите java самостоятельно, вам необходимо передать параметры виртуальной машины, такие как используемый отладочный агент, самостоятельно. лейн не может упаковать это в банку: просто нет механизма для этого.

+0

Что делает: bootclasspath? Кажется, что банка внутри моего убержара. Как передать аргумент без использования jar в моем репо? что плохо – Pablo

+0

@Pablo Это действительно два новых вопроса, а не последующие действия на этом. Но, кратко: как только вы используете leiningen для создания банки, у вас есть банка, как и любая другая java-баночка, и вы можете посмотреть, как установить агент при запуске фляги; он больше не специфичен для clojure. Если вы хотите, чтобы агент использовался в вашей среде развертывания, вам необходимо организовать наличие там jar-агента, и вам нужно также принять аргумент java-agent. – amalloy

+0

Например, поскольку вы используете newrelic, https://docs.newrelic.com/docs/agents/java-agent/installation/java-agent-manual-installation, похоже, достаточно подробное объяснение того, как его использовать при запуске банку. – amalloy