Как заставить AspectJ и maven работать над проектом War? - PullRequest
0 голосов
/ 03 января 2012

У меня есть один проект Maven, который компилируется в веб-приложение со стандартным военным макетом Maven.Я пытаюсь добавить аспекты в один и тот же проект, но эти аспекты не запускаются при развертывании в качестве войны на Tomcat.Если я разверну проект в виде jar, аспекты будут добавлены.

Вот как выглядит мой pom.xml

`` `

<groupId>in.sheki</groupId>
<artifactId>abc-service</artifactId>
<packaging>war</packaging>
<name>abc-service</name>

<properties>
    <aspectj.version>1.6.12</aspectj.version>
</properties>

<build>
    <finalName>abc-service</finalName>

    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>aspectj-maven-plugin</artifactId>
            <version>1.4</version>
            <configuration>
                <complianceLevel>1.6</complianceLevel>
            </configuration>
            <executions>
                <execution>
                    <phase>process-sources</phase>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    </plugins>
</build>
<dependencies>
   <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjrt</artifactId>
        <version>${aspectj.version}</version>
    </dependency>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>${aspectj.version}</version>
    </dependency> 
   ....
 </dependencies>
 </project>

` ``

Аспект определен в одном из пакетов проекта как JavaClass с аннотацией @Aspect.

Что я могу сделать не так?

Чтобы создать войну,Я делаю mvn clean install и перемещаю войну в каталог webapps.Для создания Jar я использую плагин сборки с главным классом, который не запускает службы HTTP, а запускает другие процессы в моем коде.

Ответы [ 2 ]

1 голос
/ 31 мая 2014

Убедитесь, что у вас есть свойство с именем war.bundle

правда

Посмотрите на http://maven.apache.org/maven-1.x/plugins/aspectj/

Если вы работаете без пружины, вам может потребоваться aop.xml, как описано в http://ganeshghag.blogspot.in/2012/10/demystifying-aop-getting-started-with.html

0 голосов
/ 22 мая 2013

Войны, развернутые на Tomcat (или на любом другом веб-контейнере, насколько мне известно), имеют свои методы, вызываемые в процессе переизбрания, и этот способ не вызывает точку вызова call ().Попробуйте переключить ваш "call ()" на "execute ()", который работал для меня на Jonas с maven, который обрабатывает развертывание через груз.

...