首页 > 解决方案 > IntelliJ ApectJ 后编译时编织

问题描述

我有以下方面:

@Aspect
public class DefaultStringAspect {

    @Around(value = "execution(* org.apache.commons.lang3.StringUtils.defaultString(..))")
    public Object defaultString(ProceedingJoinPoint pjp) {
        return "DEF";
    }  
}

这方面适用于类路径库。它适用于以下 Maven 配置:

           <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>aspectj-maven-plugin</artifactId>
                ..
                <configuration>
                   ..
                    <weaveDependencies>
                        <weaveDependency>
                            <groupId>org.apache.commons</groupId>
                            <artifactId>commons-lang3</artifactId>
                        </weaveDependency>
                    </weaveDependencies>
                </configuration>
            </plugin>

当我尝试从 IntelliJ IDEA 构建项目时,没有应用方面。方面本身是编译的,但编织的依赖项不是。我尝试调整ajc从 maven 的调试输出中获取的命令行选项并将它们添加到 IntelliJ:

-showWeaveInfo -verbose -classpath ... -inpath ... -d ...

但这对我不起作用。任何其他想法如何强制 IntelliJ 使用与ajcmaven 相同的配置?

标签: javaintellij-ideaaspectjaspectj-maven-plugin

解决方案


将 IDE 构建/运行操作委托给 Maven 作为解决方法(文件 | 设置 | 构建、执行、部署 | 构建工具 | Maven | Runner):

代表


推荐阅读