基于eclipse 的emf,实现了从建模到代码,配置文件,数据库脚本的自动化生成,大大简化了开发量,并且保证了模型和代码的一致行,可快速适应需求的变化,以后应在项目开发中推广。
1.新建一个java 工程
2.再将这个java工程转换为jet工程,在new->other->java emmiter project下
转换后,这个工程下会多一个template目录,这个目录就是jet模板文件存放的目录.
可以配置 jet工程的输出目录,在工程属性中的jet setting中配置src, 这样jet模板编译后的
java 文件就在src中了。
3. 可以再新建另一个工程,导入xmi模型文件,然后再转换为ecore,当然也可4以在同一个工程里做。
4. 在第2个工程里,new->other->merlin->jet template model,配置jet 模板,为了在mapping中匹配。
注意:在选择load from jet project 时, 直接选择到刚才转换成jet的工程,而不要选择到模板目录.
5. 新建jet mapping , 匹配模型和模板
6。 生成代码。
整体思路:
基本实现了ddd, 具体步骤:
1。 利用 argouml建模,实现,Domain Specific Modeling, 当然可以用其他的工具,但都基于标准xmi
2. 有了模型,下一步就是如何将模型转换为代码,基于代码模板,来生成代码和其他文件,实现代码和 模板重用。
没有 jet mapping 也能生成代码,mapping的实质就是将模型作为代码模板的输入,通过模板生成和模型一致的代码, jet引擎实际上是解析xmi文件,它提供了ecore相关的辅助类,如:epackage,eclass等。
当然对于代码模板来说,还可以有其他的输入,jet先生成的是模板class, 里面有个generate方法,
这个方法输出的是字符流, 其实就是我们要的各种文件。
我们还可以定制骨架,在生成代码是,执行我们定制的方法。
emf功能非常强大,这只是一少部分的应用,由于ecore模型相对简单,因此方便了我们的开发。