аспектjWeaver с толстой банкой

Пожалуйста, дайте мне знать, как я могу ссылаться на aspectjweaver, когда он находится внутри толстой банки, потому что я должен ссылаться на то же самое во время выполнения, как:

java -javaagent: аспектj-weaver.jar мое-приложение.jar

Я использую сборку sbt.


person ASe    schedule 18.09.2016    source источник
comment
Что ты пытаешься сделать? Вопрос не ясен. Вы хотите обратиться к aspectjweaver.jar из командной строки, как показано в вашем вопросе, или вы хотите использовать его программно во время выполнения? Эти два варианта совершенно разные.   -  person kriegaex    schedule 18.09.2016
comment
Да, и кстати: если у вас есть контроль над своим толстым JAR-файлом — вы, кажется, потому что вам удалось упаковать aspectjweaver.jar внутри него — почему бы вам просто не использовать переплетение времени компиляции AspectJ и просто поместить aspectjrt.jar в свой толстый JAR? Это намного проще.   -  person kriegaex    schedule 18.09.2016
comment
Я использую kamon.io/introduction/get-started, в соответствии с ручным процессом я могу используйте аспект j-weaver.jar, но, как вы предложили, я хотел бы использовать аспект jrt.jar для переплетения времени компиляции. Мы используем процесс сборки на основе sbt, поэтому мы можем связать аспект jrt.jar, но не уверены, что Kamon.io сможет поддерживать то же самое или нет.   -  person ASe    schedule 18.09.2016


Ответы (2)


Я просто создаю простой пример используя kamon-autoweave и sbt-assemby, чтобы сделать толстую банку. Когда мы это делаем, нам нужно обратить внимание на стратегия объединения для aop.xml файлов. (это также применимо при передаче AspectjWeaver как javaagent)

person Diego Parra    schedule 12.10.2016

Я пошел дальше с kamon-autoweave (https://github.com/kamon-io/Kamon/tree/master/kamon-autoweave), чтобы избежать javaagent и файла jar в пути.

person ASe    schedule 20.09.2016
comment
Не могли бы вы предоставить более подробную информацию о том, как вы это сделали? - person Haspemulator; 05.10.2016
comment
Я включил KamonAutoWeave , например, в проект на основе sbt добавьте следующее в качестве зависимости: io.kamon % kamon-autoweave_2.11 % 0.6.1 ‹br›, поэтому в процессе сборки эта банка будет связана с толстой банкой. Когда вы запускаете свое приложение с java или java2, оно попытается найти kamon.autoweave.Autoweave, который является частью kamon-autoweave, и запустит javaaganet. Подробнее см. этот код: github.com/kamon-io/Kamon/blob/master/kamon-autoweave/src/main/ - person ASe; 06.10.2016
comment
так вы говорите, что достаточно добавить зависимость autoweave и нормально запустить банку? Или вам также нужно что-то сделать из кода вашего приложения, например создать этот класс и вызвать метод attach где-то в начале выполнения? - person Haspemulator; 06.10.2016
comment
с точки зрения агента и ткачества этого достаточно. Да, вам нужно запустить Kamon.start(), чтобы использовать Kamon, дайте мне знать, если вы обнаружите какую-либо проблему, я могу помочь здесь. - person ASe; 11.10.2016