当前位置:首页 > 开发 > 编程语言 > Eclipse > 正文

关于aspectJ无法被eclipse加入类路径的分析和解决

发表于: 2010-10-27   作者:dongwei_6688   来源:转载   浏览次数:
摘要: 事情缘由:     在maven工程的pom文件中加入org.aspectj:aspectjrt:jar:1.6.6 和 org.aspectj:aspectjweaver:jar:1.6.6 依赖,虽然通过mvn dependency:tree来分析依赖发现看这个包虽然被依赖进去了,但始终在eclipse里的referenced libraries里找不到这个包;
事情缘由:
    在maven工程的pom文件中加入org.aspectj:aspectjrt:jar:1.6.6 和 org.aspectj:aspectjweaver:jar:1.6.6 依赖,虽然通过mvn dependency:tree来分析依赖发现看这个包虽然被依赖进去了,但始终在eclipse里的referenced libraries里找不到这个包;查看.classpath文件,发现eclipse的确没有这个包的依赖路径信息,也就是说,aspectjrt包根本没有加到eclipse类路径中,因而无法引入相关类。

出现原因:
    在maven-eclipse-plugin插件非2.5.1的版本中,EclipseClasspathWriter忽略了aspectj libraries,不将这个依赖加入classpath,是这么写的:
     // Skip aspectj libraries since they are in the container.
     if ( ( config.getAjdtVersion() != 0 ) && dep.getArtifactId().toLowerCase().indexOf( “aspectj” ) >= 0 )
     {
     return;
     }
    具体可参见:http://maven.apache.org/plugins/maven-eclipse-plugin/xref/org/apache/maven/plugin/eclipse/writers/EclipseClasspathWriter.html line529
    在默认情况下,maven-eclipse-plugin插件假定你已经使用了AJDT插件,并且已经使用了aspectj依赖,因而maven- eclipse-plugin忽略了没有安装AJDT插件的情况而导致aspectj不可用的情况,导致了这个问题的出现。
    AJDT(AspectJ Development Tools for Eclipse),是将 AspectJ 与 Eclipse 平台紧密集成在一起,并为 AspectJ 开发人员提供更多开发人员使用 Eclipse 时可以得到的高级工具支持。

解决之道:
1,手动修改classpath文件,加入路径的依赖。这个方法能解决问题,但比较土。
2,手动指定pom文件里maven-eclipse-plugin版本为2.5.1;
3,在pom文件里对插件加入如下配置:
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-eclipse-plugin</artifactId>
         <configuration>
             <ajdtVersion>none</ajdtVersion>
         </configuration>
        </plugin>
通过none的none版本来禁用AJDT,这样就会引入aspectJ依赖,这种应该是比较好的解决方案。

参看资料:

http://jira.codehaus.org/browse/MECLIPSE-584

http://jira.codehaus.org/browse/MECLIPSE-594

关于aspectJ无法被eclipse加入类路径的分析和解决

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
(*:此文章为个人开发报告书,若有说错或者概念错误,希望来信silentbalanceyh@126.com,并且在评
(*:此文章为个人开发报告书,若有说错或者概念错误,希望来信silentbalanceyh@126.com,并且在评
关键字: ide eclipse java 启动 jvm java虚拟机 今天突然eclipse无法启动了。 莫名其妙,没有动过ec
检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败,原因是出现以下
现象: 比如有四个source folder: src/main/java src/main/resources src/test/java src/test/conf
6.5 AspectJ切入点语法详解 6.5.1 Spring AOP支持的AspectJ切入点指示符 切入点指示符用来指示切入
你碰到过把Package Explore中的jar删除后,项目工程的LOGO出现一个感叹号,并且每次编译运行都会提
从上个世纪90年代Java诞生之日起,Java的类和资源的加载就一直是个问题。由于它增加了启动和初始化
这一篇博文来分析下Kernel类,代码上很简单,一般都能看懂。Kernel类主要是为SVM的核函数服务的,里
关于应用full gc频繁的分析及解决 很久前的工作日记了,移到ITeye上来。 现象 系统报警full gc次数
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号