【转载】关于aspectJ无法被eclipse加入类路径的分析和解决
来源:互联网 发布:猎头书籍推荐 知乎 编辑:程序博客网 时间:2024/06/05 00:22
<dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.6.12</version></dependency>
在依赖项中依然没有找到org.aspectj.weaver包,也就是没有下载成功
找到了如下文章解决问题:
事情缘由:
在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-59
来自:http://dongwei.iteye.com/blog/795416
- 【转载】关于aspectJ无法被eclipse加入类路径的分析和解决
- 【转载】关于aspectJ无法被eclipse加入类路径的分析和解决
- 关于解决eclipse被墙无法下载一些插件和更新的问题
- 【转载:总有人会解决你的问题】eclipse被maven搞得无法启动
- Eclipse下的AspectJ项目出现错误: 找不到或无法加载主类... dan.lik
- 关于Eclipse开发Android无法生成R文件的解决
- 关于eclipse和javac编译结果不一致的问题的分析与解决
- [转载]关于window下rNode.js的本地包路径过长,导致一些功能无法使用
- eclipse调试FFmpeg的准备工作,解决无法找到so路径的问题
- 关于运行Eclipse的JDK和JRE路径问题
- 比较分析 Spring AOP 和 AspectJ 之间的差别
- 比较分析 Spring AOP 和 AspectJ 之间的差别
- 比较分析 Spring AOP 和 AspectJ 之间的差别
- 比较分析 Spring AOP 和 AspectJ 之间的差别
- 比较分析 Spring AOP 和 AspectJ 之间的差别
- 比较分析 Spring AOP 和 AspectJ 之间的差别
- 很好的文章,关于AOP -- AOP和AspectJ
- Spark集群无法停止的原因分析和解决
- Android_4.2_源码下载和编译环境安装及Android_4.2_源码编译
- [Android]ListView小技巧
- Codeforce 302A Eugeny and Array
- iPhone ZBar库 中文乱码解决方法
- Java高新技术之泛型
- 【转载】关于aspectJ无法被eclipse加入类路径的分析和解决
- asp 输出 excel 两种方法
- Java高新技术之类加载器
- Java高新技术之代理
- 收藏
- javascript生成GUID
- tomcat架构分析 (Session管理) 一篇不错的文章
- HttpClient容易忽视的细节——连接关闭
- 关于HTML5令人激动的10项预测