XWorker是使用Java编写的,模型也可以集成到Java项目中。
通过Maven可以引入X-Meta引擎,X-Meta引擎已经上传到Maven的中央库,要查看版本可以参看http://mvnrepository.com/artifact/org.x-meta/org.xmeta.engine。
目前最新的正式版1.4.2。
<dependency> <groupId>org.x-meta</groupId> <artifactId>org.xmeta.engine</artifactId> <version>1.4.2</version> </dependency>
目前的开发本是1.4.3-SNAPSHOT。
<dependency> <groupId>org.x-meta</groupId> <artifactId>org.xmeta.engine</artifactId> <version>1.4.3-SNAPSHOT</version> </dependency>
使用SNAPSHOT版本的话在Maven的pom文件中加入Sonatype的仓库。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> ....... <dependencies> <dependency> <groupId>org.xworker</groupId> <artifactId>xworker_swt</artifactId> <version>1.4.3-SNAPSHOT</version> </dependency> ....... </dependencies> <repositories> <repository> <id>sonatype</id> <name>sonatype Repository</name> <url>https://oss.sonatype.org/content/groups/public/</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> <layout>default</layout> </repository> </repositories> </project>
模型可以随Java的class文件一起打包到Jar中,所以可以把模型文件放到src目录下。
如果是Maven项目,建议把模型放到src/main/resources目录下,避免和Java代码混在一起,毕竟模型大部分时候是通过编辑器编辑的。
也可以选择把模型放到单独目录下,比如创建一个名为things的目录,然后把模型放到该目录下。
X-Meta引擎是使用Java编写的,所以通过代码启动编辑器便于调试。因为如果使用外部的编辑器编辑,那么就不能调试项目中的Java代码了。
import java.io.File; import org.xmeta.Thing; import org.xmeta.World; public class RunThingExplorer { public static void main(String[] args){ try{ //X-Meta引擎是单实例的 World world = World.getInstance(); //初始化引擎,参数是模型库的目录,如果为null那么通过XMETA_HOME或XWORKER_HOME环境变量获取模型库的位置 world.init(null); //事物管理器是用项目的方式编辑模型的,所以需要把模型所在的目录作为项目加入 //参数分别为: //1.项目名称,不要和XWorker中已有的项目名相同 //2.事物模型所在的目录。 //3.是否包含things目录,即模型实际是放在things子目录下的。 //4.是否把项目添加到最前端,一般设为true。 world.addFileThingManager("myproject", new File("./src/main/resources/"), false, true); //启动事物管理器 Thing worldExplorer = World.getInstance().getThing("xworker.ide.worldExplorer.swt.SimpleExplorerRunner"); worldExplorer.doAction("run"); }catch(Exception e){ e.printStackTrace(); } } }
import org.xmeta.ActionContext; import org.xmeta.Thing; import org.xmeta.World; public class RunEditor { public static void main(String args[]){ try{ //X-Meta引擎是单实例的 World world = World.getInstance(); //初始化引擎,参数是模型库的目录,如果为null那么通过XMETA_HOME或XWORKER_HOME环境变量获取模型库的位置 world.init(null); //导入要编辑的项目 world.addFileThingManager("myproject", new File("./src/main/resources/"), false, true); //获取简单事物编辑器,简单事物编辑器 Thing thingEditor = world.getThing("xworker.swt.xwidgets.prototypes.SimpleThingEditor"); ActionContext actionContext = new ActionContext(); //执行简单事物编辑器 thingEditor.doAction("run", actionContext); }catch(Exception e){ e.printStackTrace(); } } }
模型文件可以和Java类打包在一起,所以可以放到jar中,因此发布方式随Java项目的发布方式。
关于打包和发布的内容可以参看应用打包和部署。
Copyright © 2007-2014 XWorker.org 版权所有