Конфигурация плетения во время компиляции

Я пытаюсь преобразовать свой аспект, сотканный во время загрузки, в сотканный во время компиляции.

Поэтому я удалил <context:load-time-weaver/> из моей конфигурации spring и добавил компилятор аспекта в мой pom.xml. Но я не знаю, как преобразовать информацию в META-INF/aop.xml.

У меня там что-то вроде этого:

<!DOCTYPE aspectj PUBLIC
        "-//AspectJ//DTD//EN" "http://www.eclipse.org/aspectj/dtd/aspectj.dtd">
<aspectj>
    <weaver>
        <!-- only weave classes in this package -->
    </weaver>
    <aspects>
        <!-- use only this aspect for weaving -->
        <concrete-aspect name="MyAspect_" extends="hu.myAspect">
        <pointcut name="pointcut" expression="execution(public * javax.persistence.EntityManager.*(..)) || execution(public * hu..*.create(..))"/>
        </concrete-aspect>
    </aspects>
</aspectj>

person pihentagy    schedule 22.09.2010    source источник


Ответы (1)


Нет точного эквивалента aop.xml в плетении во время компиляции, но вы можете настроить плагин AspectJ maven для включать и исключать определенные такие аспекты

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>aspectj-maven-plugin</artifactId>
    <version>1.3</version>
    <configuration>
        <includes>
            <include>**/TransationAspect.java</include>
            <include>**/SecurityAspect.aj</include>
        </includes>
        <excludes>
            <exclude>**/logging/*.aj</exclude>
        </excludes>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>compile</goal>
            </goals>
        </execution>
    </executions>
</plugin>
person Sean Patrick Floyd    schedule 22.09.2010
comment
Я считаю, что вы должны указать baseir - если вы запустите это с аргументом -X, это то, что он вам скажет. В моем случае мне пришлось поместить туда ‹basedir›${basedir}/src/main/java‹/basedir› - person kboom; 08.02.2014
comment
Для тех, кто спотыкается об этом: ссылка изменилась на mojohaus.org/aspectj -maven-plugin/examples/includeExclude.html - person David Georg Reichelt; 20.01.2021