[英]How to migrate an Eclipse AspectJ project to IntelliJ IDEA
在我的公司,我们目前正在使用Eclipse进行Java项目。 由于我和其他一些同事宁愿使用IntelliJ,我们在迁移项目时遇到了麻烦,但未能使AspectJ工作。
虽然这些项目是用Java 6编写的,但我们使用的是Java 7。 在尝试之前,我们更新了最新版本的IDEA(14.03)。 AspectJ版本是1.7.3。
以下是我们采取的步骤:
LogContext只是一个空接口。 想要附加记录器的类实现此接口。
使用AspectJ注入此方法。 不幸的是,我不是这方面的专家,实施它的人离开了公司,所以我被困住了。
为了检查一般功能,我们从头开始实现了一个小项目,只有三个类,其设置与上面相同:
public interface LogContext {}
public aspect LogContextAspect {
public void LogContext.log() {
System.out.println("Log!");
}
}
public class Aspect implements LogContext {
public static void main(String[] args) {
Aspect aspect = new Aspect();
aspect.log();
}
}
代码实际执行正常并打印出“Log!” 消息,但在make我得到以下错误:
Error:(4, 0) ajc: The type Aspect must implement the inherited abstract method LogContext.log()
我们在这里失踪了什么? 为了迁移我们的项目,我们需要AspectJ才能工作。 整个系统使用Java 6兼容性构建,但在Java 7上运行。
谢谢你的帮助!
萨沙
我尝试使用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,它仍然有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.