signavio-core-components编译初体验

    最近又开始研究Activiti这个BPM框架,昨天开始尝试了它的建模工具signavio,在编译的时候遇到了一些问题,经过几番努力终于解决,心里还是有点小成就感。

    首先从googlecode网站上可以下载该建模工具的源码,地址为:http://code.google.com/p/signavio-core-components/source/checkout

    下载后按照官方的说明使用ant进行编译:

     

ant build-and-deploy-all-in-one-war-to-tomcat

   居然报错,错误截图如下:

  

 

    于是,上网找了一下,发现很多人都遇到该问题(一般都是Windows下,据说在Linux下没有此问题,很是蛋疼),也有人给出解决方案,如:在build.xml中加入编码设置等,到最后发现还是解决不了该问题。于是决定自己动手深入一下,嘻嘻...。

    首先确定了该错误是由于对oryx.debug.js进行压缩时造成的,于是下载了yuicompressor-2.4.2.jar相应的yuicompressor-2.4.2-GUI.jar包,手动运行该包进行js的压缩,发现报了一堆的错误。打开oryx.debug.js文件发现了相应的4302行出现了乱码,并且后面少了相应的双引号。

    那么继续深入,发现signavio是将一系列的js合并成oryx.debug.js,最终定位是signavio-core-components\editor\src\scripts\Core\SVG\label.js这个文件造成的。经过几番修改发现此问题还是存在,因此只好手动修改生成的oryx.debug.js(我估计可能是文件有什么编码问题在合并时造成了乱码),将4302行后续增加一个双引号,然后继续编译,终于出现了编译成功的信息提示,如下图:



 

然后运行activiti中的ant demo.start,终于在浏览器界面看到了配置界面,如下如:



 到此,大功告成,鼓励一下自己

附注,如果Tomcat部署不成功,估计是参数配置不对哦,检查一下WEB-INF\classes\configuration.properties这个文件中fileSystemRootDirectory所定义的目录是否存在。

最后将修改过的oryx.debug.js附加上来,供大家参考,需要注意的是这样需要修改一下build.xml哦,让ant不需要合并文件,直接使用该文件即可,参考如下:

	<target name="com.signavio.editor.js.concat">
		<concat destfile='${build}/oryx.debug.js'>
			<filelist id="coresourcefiles" dir="${src}">
				<file name='scripts/oryx.debug.js' />
			</filelist>
		</concat>
		<!-- 
		<concat destfile='${build}/oryx.debug.js'>
			<filelist id="coresourcefiles" dir="${src}">
				<file name='scripts/utils.js' />
				<file name='scripts/kickstart.js' />
				<file name='scripts/erdfparser.js' />
				<file name='scripts/datamanager.js' />
				<file name='scripts/clazz.js' />
				<file name='scripts/server.js' />
				<file name='scripts/config.js' />
				<file name='scripts/editor.js' />
				<file name='scripts/Core/SVG/editpathhandler.js' />
				<file name='scripts/Core/SVG/minmaxpathhandler.js' />
				<file name='scripts/Core/SVG/pointspathhandler.js' />
				<file name='scripts/Core/SVG/svgmarker.js' />
				<file name='scripts/Core/SVG/svgshape.js' />
				<file name='scripts/Core/SVG/label.js' />
				<file name='scripts/Core/Math/math.js' />
				<file name='scripts/Core/StencilSet/stencil.js' />
				<file name='scripts/Core/StencilSet/property.js' />
				<file name='scripts/Core/StencilSet/propertyitem.js' />
				<file name='scripts/Core/StencilSet/complexpropertyitem.js' />
				<file name='scripts/Core/StencilSet/rules.js' />
				<file name='scripts/Core/StencilSet/stencilset.js' />
				<file name='scripts/Core/StencilSet/stencilsets.js' />
				<file name='scripts/Core/command.js' />
				<file name='scripts/Core/bounds.js' />
				<file name='scripts/Core/uiobject.js' />
				<file name='scripts/Core/abstractshape.js' />
				<file name='scripts/Core/canvas.js' />
				<file name='scripts/Core/main.js' />
				<file name='scripts/Core/svgDrag.js' />
				<file name='scripts/Core/shape.js' />
				<file name='scripts/Core/Controls/control.js' />
				<file name='scripts/Core/Controls/docker.js' />
				<file name='scripts/Core/Controls/magnet.js' />
				<file name='scripts/Core/node.js' />
				<file name='scripts/Core/edge.js' />
				<file name='scripts/Core/abstractPlugin.js' />
				<file name='scripts/Core/abstractLayouter.js' />
			</filelist>-->
			<!-- load all sources from plugins defined in the plugins.xml-->
			<!-- <filelist dir="${src}/scripts/Plugins/" files="${config.plugins.plugin.source}" />
		</concat>-->
	</target>

猜你喜欢

转载自cd826.iteye.com/blog/1466062