这篇博文我来给我之前开发好的请假流程项目创建archetype脚手架。
1、手工安装Activiti自带脚手架
首先我们先打开之前下载好的activiti源码,如下。没有安装的童鞋请看此篇博文:https://blog.youkuaiyun.com/JJBOOM425/article/details/84976235
下载好的源码我们打开文件目录如下:
我们打开 tooling->archetypes,这里默认是没有安装脚手架的,所以我们开始手工安装脚手架。
我们打开 Terminal,然后先进入到archetypes目录下,然后输入 mvn clean install。
执行成功如下图:
这样我们就可以在创建工程的时候使用这个脚手架了。
但是这个脚手架是activiti自带的,我们目的是创建自己开发项目的脚手架,接下来我们创建自己的脚手架。
2、拷贝一份activiti-archetype-unittest
我们将tooling->archetypes下的activiti-archetype-unittest重新拷贝一份到archetypes目录下,这里我命名为activiti-archetype-unittest2:
修改复制出来文件中的pom.xml文件内容:
这里一定记得把其中的<artifactId>中的内容改为拷贝后的文件名:
然后我们看看刚拷贝出来的目录:
3、在src中创建main文件
在src中创建main/java与main/resources两个目录,这样就跟我们之前开发的maven工程目录很相似。
4、复制项目文件
文件创建好后,将我们之前开发的请假流程文件复制到对应的目录下:
5、修改一些配置信息
首先我们要先改DemoMain.java中的package,后面路径改为 ${package};用这个占位符进行替换。
改好后还要修改 META-INF/maven/archetype-metadata.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<archetype-descriptor name="activiti-archetype-unittest2">
<fileSets>
<fileSet filtered="true" packaged="true"> <!-- filtered是否过滤,packaged:是否经过包结构过滤 -->
<directory>src/main/java</directory>
<includes>
<include>**/*.java</include>
</includes>
</fileSet>
<fileSet filtered="false" packaged="false">
<directory>src/main/resources</directory> <!-- 资源目录下面的三个文件 -->
<includes>
<include>activiti.cfg.xml</include>
<include>LeaveProcess.bpmn20.xml</include>
<include>logback.xml</include>
</includes>
</fileSet>
<fileSet filtered="true" packaged="true">
<directory>src/test/java</directory>
<includes>
<include>**/*.java</include>
</includes>
</fileSet>
<fileSet filtered="true" packaged="true">
<directory>src/test/resources</directory>
<includes>
<include>my-process.bpmn20.xml</include>
</includes>
</fileSet>
</fileSets>
</archetype-descriptor>
6、创建我们自己的脚手架
同第一步的操作一样,进入activiti-archetype-unittest2的路径下,执行 mvn clean install。
执行成功后我们可以在本地的maven仓库中看到我们创建好的脚手架:
7、按照脚手架创建maven工程
我这里在一个新的工程中创建一个模块来创建maven工程,我们右键选择New->Module。
这里我们先选择Maven后,勾选Create from archetype,但是这里我们是看不到自己刚刚创建的脚手架的,我们要先添加脚手架,点击右边的Add Archetype...。在里面输入我们脚手架的GAV内容,如下:
然后我们就可以看到刚刚添加的脚手架:
这里输入这个模块的GAV内容:
然后就可以创建成功,可以看到我们的config模块创建成功: