Java 如何将Eclipse AspectJ项目迁移到IntelliJ IDEA
在我的公司,我们目前正在为Java项目与Eclipse合作。 由于我和其他一些同事更愿意使用IntelliJ,我们在迁移项目时遇到了困难,未能让AspectJ正常工作 我们正在使用Java7,尽管项目是用Java6兼容编写的。 在试用之前,我们更新了IDEA的最新版本(14.03)。 AspectJ版本是1.7.3 以下是我们采取的步骤:Java 如何将Eclipse AspectJ项目迁移到IntelliJ IDEA,java,eclipse,migration,aspectj,intellij-14,Java,Eclipse,Migration,Aspectj,Intellij 14,在我的公司,我们目前正在为Java项目与Eclipse合作。 由于我和其他一些同事更愿意使用IntelliJ,我们在迁移项目时遇到了困难,未能让AspectJ正常工作 我们正在使用Java7,尽管项目是用Java6兼容编写的。 在试用之前,我们更新了IDEA的最新版本(14.03)。 AspectJ版本是1.7.3 以下是我们采取的步骤: 将项目和依赖项导入IntelliJ 下载并安装AspectJ 在设置->Java编译器:使用ajc编译器下,委托给javac(aspectjtools.ja
- 将项目和依赖项导入IntelliJ
- 下载并安装AspectJ
- 在设置->Java编译器:使用ajc编译器下,委托给javac(aspectjtools.jar的路径正确,如测试按钮所示)
- 将AspectJ库添加到全局库(aspectjrt.jar、aspectjtools.jar、aspectjweaver.jar和org.AspectJ.matcher.jar)
- 为使用AspectJ的模块创建AspectJ方面,保留所有设置不变(未定义方面路径)
- 将aspectjrt添加到项目库
- 重建、制造等
公共接口日志上下文{}
公共方面LogContextAspect{
public void LogContext.log(){
System.out.println(“Log!”);
}
}
public类方面实现了LogContext{
公共静态void main(字符串[]args){
方面=新方面();
aspect.log();
}
}
代码实际上执行得很好,并打印出“Log!”消息,但在make上我得到以下错误:
Error:(4,0)ajc:type方面必须实现继承的抽象方法LogContext.log()
我们错过了什么?为了迁移我们的项目,我们需要AspectJ来工作。
整个系统与Java 6兼容,但运行在Java 7上
谢谢你的帮助
Sascha我尝试了IDEA 14.1.1 Ultimate,它运行得很好,尽管IDEA中的AspectJ支持通常不如Eclipse中的先进,尽管IDEA对我来说总体上是优越的。但是对于AspectJ,我经常使用Eclipse 我认为这将是一个好主意“mavenise”你的项目。这样,它将在Eclipse和IDEA中工作。在IDEA中,激活Maven更改的自动导入,让Maven成为领先的系统,IDEA只需遵循其设置即可。这对我的AspectJ项目很有效。但在本例中,我手动设置了您的示例(没有Maven)。经过几步之后,它现在可以工作了。一路上我没有看到你提到的错误消息 编辑:我使用AspectJ 1.8.5,如果这有什么不同的话
编辑2:我已经尝试将编译器和运行时手动设置为1.7.3,它仍然有效。谢谢您的回复。就我个人而言,我不太喜欢maven,所以如果这取决于我(这并不完全是),我会选择gradle。但我认为你的观点仍然适用。此外,我们目前正在努力用Google Guice替换AspectJ,这样问题可能很快就会解决。:)如果Guice中可用的“AOP-lite”方法对您来说足够好,那么很好。对我来说,这不是一个选项,我喜欢AspectJ的全部功能。方法拦截对我来说绝对不够。我使用Guice的原因是依赖项注入。:-)