快速业务通道

基于Eclipse平台的代码生成技术 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-13
件系统中创建文件夹 src   IFolder sourceFolder = project.getFolder(new Path("src"));   if (!sourceFolder.exists()) {   sourceFolder.create(false, true, null);   }   // 在 JavaProject 的文件系统中创建文件夹 bin    IFolder runtimeFolder = project.getFolder(new Path("bin"));   if (!runtimeFolder.exists()) {   runtimeFolder.create(false, true, null);   }

将设置好的 classpath 赋值给 JavaProject,其结果反映到 JavaProject 的 .classpath 文件中,并对 JavaProject 的 outputLocation 赋值,最后在当前 workspace 中打开该 JavaProject 。

清单 15. 设置 Classpath 和 bin 目录

// 将设置好的 classpath 赋值给 JavaProject   javaProject.setRawClasspath(classpath     .toArray(new IClasspathEntry[classpath.size()]), null);   // 设置 JavaProject 的 bin 目录   javaProject.setOutputLocation(    new Path("/" + project.getName() + "/bin"), null);   // 在当前 Workspace 环境中打开该项目   javaProject.open(null);

以上内容可以创建基本的 JavaProject,如果多个 Project 之间存在引用关以,用 Iworkspace 创建引用关系

清单 16. 设置项目引用

// 获得当前 Eclipse 运行环境中的 IWorkspace 实例   IWorkspace workspace = ResourcesPlugin.getWorkspace();   // 从当前 workspace 中获取 IProject 实例    IProject project = workspace.getRoot().getProject(_projectName);

创建 PluginProject 需要调用到 Eclipse 的 PDE 平台,其生成所需要代码在 org.eclipse.pde.core 中,具体生成方式可参看 org.eclipse.pde.ui 中 NewProjectCreationOperation 的 execute 方法。

开发环境集成技术

模板引擎和项目生成是代码生成工作中最重要的工作,完成这些内容,就已经完成了大部分工作。但实际项目开发没有这种简单,开发人员还会受到几个开发环境有关的问题的困扰,这些问题不但会使整个自动代码生成过程变得无趣,还在一定程序上影响开发人员的生成效率。本文只讨论在 Eclipse 平台下的解决。如果您正在使用的集成开发环境不支持扩展或没有开发的 API,可以考虑将项目转移到 Eclipse 环境。

与配置管理工具集成

企业级大型项目,往往需要可靠稳定的配置管理工具,常用的配置管理工具有 CVS、SVN、ClearCase、SourceSafe 等。 IBM 的 ClearCase 因其出色的能力,往往成为开发大型项目的首选,但 ClearCase 的工作原理与 SVN 有明显不同,它对文件的操作有严格的要求,需将加入版本控制的所有的文件设为只读,只有检出操作后才会改为可写,而且要检出代码也能在 ClearCase 中留下完成的版本控制记录,有利于项目的管理。这样就要求生成代码工具支持 ClearCase 的特性,需要时能够自动检出目标文件。幸运的是 Eclipse 的提供了统一的机制操作文件,并且提供编程接口。

基于Eclipse平台的代码生成技术(10)

时间:2012-02-26 IBM 吕锋 于沛 王轩

解决上述问题,有两个关键点:

1. 需要找到配置管理工具的类型,在 Eclipse 中所有在 Workspace 中的资源类都会实现 IResource 接口,在其中有 getSessionProperty(QualifiedName key) 方法,该方法可以获得配置工具的类型代码如下

清单 17. 获得配置管理工具对象

// 获得配置工具对象    Object obj = resource.getSessionProperty(TeamPlugin.PROVIDER_PROP_KEY);   RepositoryProvider provider = (RepositoryProvider) obj; 当 provider.getID().contains("clearcase") 

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号