Fixflow,做中国最好的开源流程引擎!项目地址https://github.com/fixteam/fixflow

此文章适合maven初学者或想接触maven的用户,讲的只是皮毛,高手请自觉略过。

最近一直在搞fixflow5.2的升级工作,以前只知道maven好用,但是一直没机会接触,这次由于工作需要,终于有空看下maven了。

由于以前项目使用linksource来管理项目结构,用tomcat来调试,习惯了,所以虽然决定用maven,但是还是习惯用tomcat来调试。所以就一直在网上搜maven tomcat  多web,发现都是一些转载的文章,而且都需要这插件,那插件的,感觉新手无从下手,不过几天研究下来,觉得其实网上的方案都不是我想要的,其实有更简单的,下面我就来简单说下fixflow用maven来构建多web的过程。

关于fixflow的maven结构介绍,可以参考我的另一篇博客http://yang-ch.iteye.com/blog/2032905,这也是我们这篇文章的目标。

这篇文章,我准备分3个部分来介绍:

  1. maven多模块项目。
  2. maven多web合并项目。
  3. maven多web合并项目在eclipse+tomcat环境下部署和调试。

maven多模块项目

maven多模块项目需要一个父工程来聚合各个子模块,不过其实就是需要一个父pom.xml,主要作用是声明子模块,代码如下:

Xml代码  
  1. <modules>
  2. <module>modules/fixflow-core</module>
  3. <module>modules/fixflow-expand</module>
  4. <module>modules/fixflow-common-api</module>
  5. <module>modules/fixflow-common-servlet</module>
  6. <module>modules/fixflow-manage-servlet</module>
  7. <module>modules/fixflow-webapp-common</module>
  8. <module>modules/fixflow-webapp-taskcenter</module>
  9. <module>modules/fixflow-webapp-managecenter</module>
  10. <module>modules/fixflow-webapp-explorer</module>
  11. <module>modules/fixflow-converter</module>
  12. <module>modules/fixflow-webapp-editor</module>
  13. </modules>

然后在子模块中,声明父工程,子模块中代码如下:

Xml代码  
  1. <parent>
  2. <groupId>com.founder.fix.fixflow</groupId>
  3. <artifactId>fixflow-root</artifactId>
  4. <version>5.0</version>
  5. <relativePath>../..</relativePath>
  6. </parent>

关于多模块的文章,网上有很多,也都很详细,这里不再多说。

maven多web合并项目

多web项目合并,主要是我在网上找到的资料都不是我最终想要的效果,所以这里就介绍下我最终使用的方案,网上有很多方案都是介绍用caro插件,我到现在也不明白为什么要使用这个插件。

maven的多web模块maven-war-plugin插件的overlays属性来处理,最终主web项目pom.xml代码如下

Xml代码  
  1. <build>
  2. <finalName>bpmcenter</finalName>
  3. <plugins>
  4. <!-- 合并多个war -->
  5. <plugin>
  6. <groupId>org.apache.maven.plugins</groupId>
  7. <artifactId>maven-war-plugin</artifactId>
  8. <configuration>
  9. <packagingExcludes>WEB-INF/web.xml</packagingExcludes>
  10. <overlays>
  11. <overlay>
  12. <groupId>com.founder.fix.fixflow</groupId>
  13. <artifactId>fixflow-webapp-taskcenter</artifactId>
  14. </overlay>
  15. </overlays>
  16. </configuration>
  17. </plugin>
  18. </plugins>
  19. </build>

这里使用到了maven-war-plugin,用overlay属性已经足够将多web合并了,只是用的过程中需要注意以下几点:

  1. 被合并的子web项目packaging属性必须是war
  2. 被合并的子web项目,必须在主项目中添加依赖关系。
  3. 被合并的子web项目中,如果没有web.xml,则需要在pom.xml中声明
    Xml代码  
    1. <build>
    2. <finalName>fixflow-webapp-editor</finalName>
    3. <plugins>
    4. <plugin>
    5. <groupId>org.apache.maven.plugins</groupId>
    6. <artifactId>maven-war-plugin</artifactId>
    7. <configuration>
    8. <failOnMissingWebXml>false</failOnMissingWebXml>
    9. </configuration>
    10. </plugin>
    11. </plugins>
    12. </build>

做完以上几点,多web项目合并就基本上做完了,运行mvn install就会发现打出的war包中已经存在了其他子模块的项目。

多web项目在eclipse+tomcat环境下部署调试

在eclipse里面使用,其实更简单,只是网上的说法太复杂了而已,对于习惯了tomcat开发的用户来说。

对于maven项目,一个环境到另一个环境应该只有pom.xml文件和src文件夹就够了,其他都是用户根据自己的环境来做的。

  1. 打开eclipse,修改本地maven仓库地址,导入maven项目,等待构建结束。
  2. 创建server,打开window-prefrences-server-runTime Environment-new ....选择tomcat路径,jdk信息,这一步和原来完全一样。
  3. 打开server视图,new server,这里选中刚才创建的tomcat,点击next,这步只需要主web项目添加进来即可。
  4. 双击创建的server,选择将项目发布到tomcat的webapps目录下,点击pushlish,完成。

再去tomcat目录,发现已经将合并后的web发布到对应目录下了。引用的其他Java项目已经被打包成jar发布到lib下了,不过你可以打个断点试试,依然可以调试,修改一段代码,发现热部署也是可以的,这样就和原来的开发习惯完全一样了。

细心的用户会发现,其实这完全和我们原来的构建,部署方式完全一样,是的,maven没有那么复杂,m2eclipse maven plugin已经帮我们做好了太多的事情,maven只会让我们项目之间的迁移更方便,更简洁,这也是我喜欢上maven的重要原因。

我是一个绝对的maven新手,上面的文章用的也只是maven的皮毛而已,maven更多的构建功能还需要深入去研究,上面文章只是想告诉那些想尝试maven的新手,其实maven不但对代码管理带来了很大的方便,而且完全可以不改变我们原有的开发习惯。所以,尽情的拥抱maven吧!

转载于:https://www.cnblogs.com/telwanggs/p/7522476.html

maven多模块项目,多web合并项目使用心得相关推荐

  1. 【饿了么】—— Vue2.0高仿饿了么核心模块移动端Web App项目爬坑(一)

    [饿了么]-- Vue2.0高仿饿了么核心模块&移动端Web App项目爬坑(一) 前言:学习Vue.js高仿饿了么课程过程中,总结了这个Web App项目从准备到开发完毕自己觉得很重要的知识 ...

  2. Vue2.0高仿饿了么核心模块移动端Web App项目爬坑(一)

    原文https://www.cnblogs.com/ljq66/p/9980372.html 前言:学习Vue.js高仿饿了么课程过程中,总结了这个Web App项目从准备到开发完毕自己觉得很重要的知 ...

  3. MyEclipse教程:Web开发——创建Web片段项目

    MyEclipse 在线订购年终抄底促销!火爆开抢>> MyEclipse最新版下载 本教程向用户展示了使用关联的Web项目创建Web片段项目的机制. 用户还可以获得要检查的示例项目. 在 ...

  4. Web安装项目创建桌面快捷方式

    一.WEB安装项目部署 1.新建:新建项目-安装和部署项目-WEB安装项目 2.部署: (1)进入文件系统视图,"项目-右键-视图-文件系统";也可以直接点"解决方案资源 ...

  5. 学习:Web安装项目创建桌面快捷方式及重写安装类(转)

    一.WEB安装项目部署 1.新建: 新建项目-安装和部署项目-WEB安装项目 2.部署: (1)进入文件系统视图,"项目-右键-视图-文件系统";也可以直接点"解决方案资 ...

  6. VS2010 asp.net web site项目使用log4net

    一 前言 网上搜到的log4net配置多是针对web application项目 的和winForm项目,针对Web site项目的太少或者描述不清.web application项目和web sit ...

  7. maven多模块合并打包_Spring Boot 多模块项目实践(附打包方法)

    一.创建聚合父工程 二.创建子模块(module) 三.编写子模块代码 三.运行项目 四.运维部署(多模块打包) 1. 添加打包插件 2. 打包工程 3. 启动项目 <Java 2019 超神之 ...

  8. javaWeb项目 IDEA中导入eclipes项目的方法。maven多模块项目(父子模块)与普通的web项目导入

    IDEA中导入eclipes项目 1.普通的Web项目(没有pom文件 )导入方式在下方地址 https://blog.csdn.net/oLevin/article/details/81018316 ...

  9. Maven多模块项目中应用maven-tomcat-plugin热部署

    Maven多模块项目中使用maven-tomcat-plugin热部署 比如有一个父模块xfl(类型为pom的maven项目),其中的pom.xml为: <modules> <mod ...

最新文章

  1. 开发者进阶宝典,HarmonyOS 职业认证全奉上
  2. 极光商智®服务器2007今日正式发布
  3. 怎么计算一组数据的波动_[理论+spss实战]一组数据的描述性统计分析
  4. 《使用Nessus进行渗透测试》- 简介
  5. OJ8462-大盗阿福【各种dp之5】
  6. python的特性是_python的特性
  7. jenkins 安装 和自动部署的 一些配置
  8. Kubernetes学习总结(13)—— Kubernetes 各个组件的概念
  9. 计算机视觉中的注意力机制的学习笔记
  10. 第四篇、Python文件处理
  11. AIX ksh使用小技巧
  12. 计算机自带扫雷游戏不显示,win7系统自带扫雷游戏打不开的解决方法
  13. MATLAB使用教程(一)——从零开始,基础,数据类型——新手来看
  14. Google桌面搜索使用与技巧
  15. 不用第三方实现外网访问
  16. 顺丰,四通一达,京东,百世,天天,德邦快递接口java-demo【快递100API】
  17. git 裁切_图片裁切.html
  18. 螺旋扩孔的效率高,但侧壁质量不如步进扩孔
  19. 《迅雷链精品课》第十五课:共识算法的性能问题
  20. mac蓝牙鼠标总是自己断开_解决 mac 蓝牙鼠标、键盘经常总是 断开连接的问题

热门文章

  1. SkyEye携手Simulink实现全数字协同仿真
  2. 操作系统之进程和线程
  3. Log4J 1.x 配置详解
  4. mysql二进制格式_二进制格式安装 MySQL
  5. 关于FPGA核心bug解决
  6. (99)Verilog HDL:呼吸灯设计
  7. ajax请求接口连不上会报错吗_服务端有异常, 导致: Ajax 请求报错 net::ERR_INCOMPLETE_CHUNKED_ENCODING...
  8. 7.FreeRTOS学习笔记-事件
  9. 文件和内建函数 open() 、file()
  10. 【飞控理论】从零开始学习Kalman Filters之四:卡尔曼滤波C语言代码实现