Eclipse中的项目有很多种,比如Java项目,C++项目,WTP项目,Python项目,这些项目的不同之处是每种项目都有自己不同的特性,为了方便地标识和辨认这些特性,Eclipse为项目维护了一个特性标识数组,插件只要读取这个数组就知道此项目是否拥有某个特性。比如Java相关的插件如果在非Java项目中被调用,由于项目没有Java特性,所以调用就会不成功了。
一般在新建项目的时候初始化项目Nature,为项目增加Nature:
IProject project = ...
IProjectDescription projectDesc = project.getDescription();
String [] oldIds= projectDesc.getNatureIds();
String [] newIds = new String [oldIds.length+1];
System.arraycopy(oldIds,0,newIds,0,oldIds.length);
newIds[oldIds.length]="com.tongdatech.sunriseNature";
projectDesc.setNatureIds(newIds);
增加后属性值会显示在.project文件中
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>surise</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
</buildSpec>
<natures>
<nature>com.tongdatech.sunriseNature</nature>
</natures>
</projectDescription>