基于 Eclipse 平台的代码生成技术
2010-07-02 00:00:00 来源:WEB开发网通过 JavaCore 将当前项目转换为 JavaProject,并将其原有的 source root 删除,由于 Project 默认的 source root 为项目的根目录而非 JavaProject 使用的项目下的 src 路径,需要对其进行修改,本文由于在后面将会介绍对 source root 的创建,因此在这里采用删除的方式,实际创建时可依据需要进行修改。
清单 12. 生成 JAVA 项目
// 在 JavaCore 中将当前 IProject 创建为 IJavaProject
IJavaProject javaProject = JavaCore.create(project);
// 获得生成项目中的 classpath 信息,并将项目中的 source 目录信息删除
// 由于在下面将重新生成项目的 source root,因此为了保证不重复,
// 在这里将多余的错误 source root 删除
List<IClasspathEntry> classpath = new UniqueEList<IClasspathEntry>(
Arrays.asList(javaProject.getRawClasspath()));
for (int i = 0, len = classpath.size(); i < len; i++) {
IClasspathEntry entry = classpath.get(i);
if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE
&& ("/" + project.getName()).equals(entry.getPath()
.toString())) {
classpath.remove(i);
}
}
创建 JavaProject 的 classpath 信息,每个 IClasspathEntry 对应 classpath 中的一条细目,并将其加入到 classpath 中。
清单 13. 生成 Classpath
// 添加新的 classpath 细目,包括 source 目录,bin 目录运行时的 container
// 以及其他需要添加的如变量(variable),jar 包(library)等等
// 生成效果为 <classpathentry kind="src" path="src"/>
IClasspathEntry classpathEntry = JavaCore.newSourceEntry(new Path("/"
+ project.getName() + "/src"));
// 生成效果为
// <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
IClasspathEntry jreClasspathEntry = JavaCore
.newContainerEntry(new Path(
"org.eclipse.jdt.launching.JRE_CONTAINER"));
classpath.add(classpathEntry);
classpath.add(jreClasspathEntry);
// 在此处可以创建其他需要的 classpath 信息
更多精彩
赞助商链接