0

我有一个基于注释的自定义安全框架。当遇到方法的安全注释时,我使用 aspectj maven 插件来编织方面。

我使用 jenkins 来构建项目,并且为编译设置了 aspectj maven 插件目标,如下所示。

    <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>aspectj-maven-plugin</artifactId>
            <version>1.4</version>
            <dependencies>
                <dependency>
                    <groupId>org.aspectj</groupId>
                    <artifactId>aspectjrt</artifactId>
                    <version>1.6.5</version>
                </dependency>
                <dependency>
                    <groupId>org.aspectj</groupId>
                    <artifactId>aspectjtools</artifactId>
                    <version>1.6.5</version>
                </dependency>
            </dependencies>
            <configuration>
                <showWeaveInfo>true</showWeaveInfo>
                <complianceLevel>1.6</complianceLevel>
                <!-- <weaveDirectories> <weaveDirectory>${project.build.directory}/classes</weaveDirectory> 
                    </weaveDirectories> -->
            </configuration>
            <executions>
                <execution>
                    <!-- Compile and weave aspects after all classes compiled by javac -->
                    <phase>process-classes</phase>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

当junit运行时出现问题。由于它已经在方法中编织了与安全相关的注释,因此单元测试失败。

有没有办法让junits工作然后进行aspectj编织?由于我单独使用 .aj 文件,我不确定如何设置加载时间编织。

对此的任何帮助表示赞赏。

问候

4

2 回答 2

1

我将我的 maven 目标重组为

干净编译测试aspectj:编译

所以在测试aspectj编织完成后,这就是我想要的。

于 2013-07-10T18:30:37.463 回答
0

我认为,您需要将测试编译添加到您的目标中。

<goals>
    <goal>compile</goal>
    <goal>test-compile</goal>
</goals>
于 2013-02-20T17:36:22.587 回答