<target name="demo.setup" depends="install.jboss, install.jbpm.into.jboss, start.jboss"
description="installs jboss, installs jbpm into jboss, starts jboss, creates the jBPM DB schema, deploys examples, loads example identities, installs and starts eclipse">
<ant antfile="${jbpm.home}/db/build.xml" target="create.jbpm.schema" />
<ant antfile="${jbpm.home}/examples/build.xml" target="deploy.examples" />
<ant antfile="${jbpm.home}/db/build.xml" target="load.example.identities" />
<ant antfile="${jbpm.home}/gpd/build.xml" target="install.eclipse" />
<ant antfile="${jbpm.home}/gpd/build.xml" target="start.eclipse" />
</target>
这是 demo.setup 的脚本。很明显的看出, demo.setup 都做了些什么。
1、 安装 jboss
2、 将 jbpm 发布到 jboss 中
3、 启动 jboss
4、 执行 jbpm 建表脚本
5、 将 examples 发布到 jboss 中
6、 创建数据库初始化数据
7、 安装 eclipse
8、 启动 eclipse
现在我们分步看一下,都是如何执行这些步骤的
一、 安装 Jboss
<target name="install.jboss" depends="log.properties, get.jboss"
description="unzips jboss, downloads jboss to $jboss.distro.dir} if its not available">
<unzip src="${jboss.distro.path}" dest="${jboss.home}/.." />
<chmod perm="a+x" file="${jboss.home}/bin/run.sh" os="Linux, Mac OS X" />
<chmod perm="a+x" file="${jboss.home}/bin/shutdown.sh" os="Linux, Mac OS X" />
</target>
1 )他首先要获取 JBOSS, 依赖于这个任务 get.jboss
<condition property="is.jboss.distro.available">
<available file="${jboss.distro.path}" />
</condition>
<target name="get.jboss"
unless="is.jboss.distro.available"
description="downloads jboss into ${jboss.distro.dir}">
<mkdir dir="${jboss.distro.dir}" />
<get src="${jboss.distro.url}" dest="${jboss.distro.path}" />
</target>
这个意思是如果已经存在了 JBOSS ,这个任务就算完成了。如果不存在,他会从网站上下载一个。
2 )任务 get.jboss 完成,会将 JBOSS 文件解压,安装 JBOSS 算是完成了。
二、 将 jbpm 发布到 jboss中
<target name="install.jbpm.into.jboss" depends="log.properties" description="installs jbpm into jboss">
<antcall target="internal.install.jbpm.into.jboss.common" />
<antcall target="internal.install.jbpm.into.jboss.500specifics" />
<antcall target="internal.install.jbpm.into.jboss.db.${database}" />
</target>
这个脚本执行了三个任务
1)internal.install.jbpm.into.jboss.common 将一些 common 文件安装到 JBOSS 中
我们详细看一下,都安装了那些文件呢,大家可以关于一下在www.codexueyuan.com的开发过程中所遇到的问题。
<target name="internal.install.jbpm.into.jboss.common">
<!-- copy static configuration files -->
<copy todir="${jboss.server.config.dir}" overwrite="true">
<fileset dir="${jbpm.home}/jboss/config.common" />
</copy>
<!-- copy the right hibernate configuration file -->
<copy file="${jbpm.home}/jboss/hibernate.cfg/${database}.hibernate.cfg.xml"
tofile="${jboss.server.config.dir}/deploy/jbpm/jbpm-service.sar/jbpm.hibernate.cfg.xml"
overwrite="true" />
<!-- copy the right datasource configuration file and replace the jdbc properties with
the values in the jdbc/${database}.properties file -->
<copy todir="${jboss.server.config.dir}/deploy/jbpm" overwrite="true">
<filterset filtersfile="${jbpm.home}/db/jdbc/${database}.properties" />
<fileset dir="${jbpm.home}/jboss/datasources">
<include name="jbpm-${database}-ds.xml"/>
</fileset>
</copy>
<copy todir="${jboss.server.config.dir}/lib" overwrite="true">
<fileset dir="${jbpm.home}">
<include name="jbpm.jar" />
</fileset>
<fileset dir="${jbpm.home}/lib">
<include name="gwt-console-server-integration.jar" />
<include name="gwt-console-rpc.jar" />
</fileset>
</copy>
<copy todir="${jboss.server.config.dir}/deploy/jbpm" overwrite="true">
<fileset dir="${jbpm.home}/lib">
<include name="gwt-console.war" />
<include name="gwt-console-server.war" />
</fileset>
</copy>
<copy todir="${jboss.server.config.dir}/deploy/jbpm/jbpm-service.sar" overwrite="true">
<fileset dir="${jbpm.home}/lib">
<include name="jbpm-console-integration.jar" />
<include name="jbpm-console-form-plugin.jar" />
<include name="freemarker.jar" />
<include name="livetribe-jsr223.jar" />
<include name="juel*.jar" />
</fileset>
</copy>
<copy todir="${jboss.server.config.dir}/deployers/jbpm.deployer" overwrite="true">
<fileset dir="${jbpm.home}/lib">
<include name="jbpm-spi.jar"/>
</fileset>
</copy>
<mkdir dir="${jboss.home}/docs/examples/jbpm" />
<copy todir="${jboss.home}/docs/examples/jbpm" overwrite="true">
<fileset dir="${jbpm.home}/jboss/datasources" />
</copy>
</target>
1 、首先将 jboss/config.common 里面所有的内容拷贝 JBOSS 服务器中的 server\default 目录下。
2 、接着将对应数据库的 hibernate 配置文件更名后放置到 Jbpm 的工程跟目录下
使用 jdbc properties 文件的内容,配置数据的的 ds.xml 文件 ,并放置到 JBOSS , JBPM 工程的根目录下。
3 、将 JBPM.jar 、 gwt-console-server-integration.jar 、 gwt-console-rpc.jar 放置到 server\default\lib 目录下
4 、将两个 war 包 gwt-console.war 、 gwt-console-server.war 放置到 jbpm 的根目录下
5 、将 jbpm-console-integration.jar 、 jbpm-console-form-plugin.jar 、 freemarker.jar 、 livetribe-jsr223.jar 、 juel*.jar 放置到 default\deploy\jbpm\jbpm-service.sar 目录下
6 、将 jbpm-spi.jar 放置到 \server\default\deployers\jbpm.deployer
7 、将相关文档放置到文档目录
2)internal.install.jbpm.into.jboss.500specifics 安装 JBOSS5 的特殊配置
<target name="internal.install.jbpm.into.jboss.500specifics" if="jboss.version.5">
<!-- copy static configuration files -->
<copy todir="${jboss.server.config.dir}" overwrite="true">
<fileset dir="${jbpm.home}/jboss/config.jboss5" />
</copy>
<copy todir="${jboss.server.config.dir}/deploy/jbpm/jbpm-service.sar" overwrite="true">
<fileset dir="${jbpm.home}/lib">
<include name="jbpm-spi.jar"/>
</fileset>
</copy>
<copy todir="${jboss.server.config.dir}/deployers/jbpm.deployer" overwrite="true">
<fileset dir="${jbpm.home}/lib">
<include name="jbpm-jboss5.jar"/>
</fileset>
</copy>
</target>
1 、将 jboss5 的配置文件拷贝到 Jboss 服务起的相关目录中
2 、将 jbpm-spi.jar 拷贝到 deploy/jbpm/jbpm-service.sar 目录中
3 、将 jbpm-jboss5.jar 拷贝到 deployers/jbpm.deployer 目录中
3)internal.install.jbpm.into.jboss.db.${database} 就是将对应的 JDBC 驱动拷贝到对应目录中
至此为止, JBPM 算是发布完成了
三、 启动 Jboss ,启动后一直让他在后台运行
<target name="start.jboss"
depends="log.properties"
description="starts jboss and waits till jboss is booted, then lets jboss run in the background">
<taskdef name="start-jboss"
classname="org.jbpm.pvm.internal.ant.StartJBossTask">
<classpath>
<fileset dir="${jbpm.home}">
<include name="jbpm.jar" />
</fileset>
</classpath>
</taskdef>
<start-jboss jbosshome="${jboss.home}" />
</target>
执行 jbpm 建表脚本
它首先调用一个 ant 脚本 db\build.xml . 执行 create.jbpm.schema 任务。
他仅仅是通过 JBDC 使用配置文件 db/jdbc/${database}.properties 配置的信息执行 db/schema.scripts/jbpm.${database}.create.sql 文件而已
四、 将 examples 发布到 jboss 中
同样也是通过调用 ant 脚本 examples/build.xml 。执行 deploy.examples 完成此功能。只是将所有 java 文件编译一下,用 jar 打成一个 bar 文件(为什么是 bar 文件?)发布任务是用 jbpm 扩张 ant 的 Class org.jbpm.pvm.internal.ant.JbpmDeployTask 来完成的。
五、 这一步和第四步是一样的,不过 sql 文件换成 db/example.identities.sql 。功能是向数据库中增加初始化数据。
六、 剩下的两步就不讲了,只是安装 eclipse 而已,目前还没有发现什么用处,也没有给 eclipse 装 jbpm 的插件,不知道这个是用来干什么。应该可以改进一下,变成安装 eclipse 并安装 jbpm 插件 |
|