AspectJ的Autocompletion不能在eclipse中与spring roo 2项目一起工作
我使用spring-roo-2.0.0.RC2创建了一个Spring Roo项目并将其导入到eclipse中。 该项目启动并正常工作,但是当我尝试从roo生成的aspectJ文件中访问一些方法时,我收到一个编译错误。 这些方法不能被访问,甚至不会在eclipse的自动完成中显示。对于编译器,方法不存在...
例如,我有一个实体“突发”,我想坚持下去。 因此我想用一些可以在Burst_Roo_JavaBean.aj中找到的setter来设置一些值。 但是setter / getters不能被访问。 这是一个普遍的问题,我不知道为什么它不起作用。
我正在用STS插件和AJDT使用eclipse氧气。 项目上启用了AspectJ-Tooling和JDT编织。 我也试过使用STS捆绑包,但也存在同样的问题。
拳头我认为这将是一个普遍的问题,我的日食安装。 但我创建了一个spring roo 1项目(spring-roo-1.3.2.RELEASE)并将其导入到eclipse中。 这一切都可以正常工作,我可以利用roo生成的aspects文件中的方法。 Spring Roo v1显示相同的行为。
这似乎是一个很好的问题:Eclipse中的Roo项目自动完成,但清理和更新没有帮助。
这是一些版本messup在项目中?
请帮助,我不知道如何解决这个问题...
编辑:我发现,我可以使用.aj文件中的方法,但只是在创建.aj文件的类中。 例如我有一个域名“Burst”。 我可以在那里创建一个方法,并使用通过.aj-文件提供的方法,如“getVersion()”和所有其他方法。 但是当我在同一个包中创建一个类“MyClass”时,我无法访问.aj文件中的方法。
更新(添加的代码):我选择了这些图片,因为我认为这会更清楚地知道编译错误的位置和方式。 代码只是一个简单的域,getVersion()方法不是我写的。 它存在于Burst_Roo_JavaBean.aj的aspect文件中。 我也会加上...
突发域:
package de.larv.overseer.domain;
import java.time.LocalDateTime;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Version;
import org.springframework.roo.addon.javabean.annotations.RooEquals;
import org.springframework.roo.addon.javabean.annotations.RooJavaBean;
import org.springframework.roo.addon.javabean.annotations.RooToString;
import org.springframework.roo.addon.jpa.annotations.entity.RooJpaEntity;
@RooJavaBean
@RooToString
@RooJpaEntity
@RooEquals(isJpaEntity = true)
public class Burst {
public void method() {
Burst b = new Burst();
b.getVersion();
}
/**
* TODO Auto-generated attribute documentation
*
*/
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
/**
* TODO Auto-generated attribute documentation
*
*/
@Version
private Integer version;
private String pool;
}
Burst_Roo_JavaBean.aj
// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
// You may push code into the target .java compilation unit if you wish to edit any member(s).
package de.larv.overseer.domain;
import de.larv.overseer.domain.Burst;
import java.time.LocalDateTime;
privileged aspect Burst_Roo_JavaBean {
/**
* TODO Auto-generated method documentation
*
* @return Long
*/
public Long Burst.getId() {
return this.id;
}
/**
* TODO Auto-generated method documentation
*
* @param id
*/
public void Burst.setId(Long id) {
this.id = id;
}
/**
* TODO Auto-generated method documentation
*
* @return Integer
*/
public Integer Burst.getVersion() {
return this.version;
}
/**
* TODO Auto-generated method documentation
*
* @param version
*/
public void Burst.setVersion(Integer version) {
this.version = version;
}
/**
* TODO Auto-generated method documentation
*
* @return String
*/
public String Burst.getPool() {
return this.pool;
}
/**
* TODO Auto-generated method documentation
*
* @param pool
*/
public void Burst.setPool(String pool) {
this.pool = pool;
}
}
MyClass(编译错误):
package de.larv.overseer.domain;
public class MyClass {
public void method() {
Burst b = new Burst();
b.getVersion();
}
}
链接地址: http://www.djcxy.com/p/25417.html
上一篇: Autocompletion of AspectJ not working in eclipse with spring roo 2 project
下一篇: AspectJ compile time weaving with Spring boot and maven