spring aspectj - время компиляции плетения внешней банки

У меня есть проект, в котором используется переплетение аспектов во время компиляции. этот проект зависит от другого проекта, который включен как jar. Я хочу сплести класс в файле jar во время компиляции. Как я могу достичь этого.

Спасибо


person user373201    schedule 31.01.2011    source источник


Ответы (2)


Эту банку необходимо добавить во входной путь компилируемого проекта. Результатом будет новый набор файлов классов. Эти новые файлы классов являются ткаными и должны использоваться во время выполнения вместо оригинального jar.

Как установить входящий путь, зависит от того, как вы компилируете свой код:

  1. В Eclipse/AJDT вы можете указать входящий путь на странице свойств проекта AspectJ Build. Здесь вы также можете установить выходную папку, чтобы указать специальное место для этих файлов классов.
  2. Из ant, использующего задачу iajc, вы можете использовать атрибут inpath. Дополнительную информацию см. здесь: http://www.eclipse.org/aspectj/doc/released/devguide/antTasks-iajc.html
  3. При использовании команды ajc используйте параметр -inpath. См. здесь http://www.eclipse.org/aspectj/doc/released/devguide/ajc-ref.html.

Сложность заключается в том, чтобы не использовать оригинальные банки в работающем приложении, а использовать тканые банки.

person Andrew Eisenberg    schedule 31.01.2011

Если вы используете maven, вы также можете использовать плагин aspectj-maven. Он хорошо работает с eclipse (m2e).

В плагине просто укажите groupId/artifactId зависимого jar-файла, а также в файле configuration/weaveDependencies/weaveDepedency.

См. http://mojo.codehaus.org/aspectj-maven-plugin/weaveJars.html

person lsiu    schedule 27.03.2012