Maven打包war和ear
在软件开发过程中,我们需要经常对项目进行打包并部署。这里的打包即-构建项目软件包。说白了,其实就是对项目中的各种文件,比如编译生成的字节码、配置文件、文档等,根据maven规范的格式或者配置的要求生成归档。最常见的就是对JAR包和WAR包打包。后者是一般都是web 项目。
通常情况下,我们的项目可能很大,也会划分成web 项目模块和一些后台模块。这个时候一般都是将web 项目打包成 war 包,然后再所有项目包括 jar包 打包成ear 包。maven都提供了不止一种方式,这里只使用最直观的一种方式,即mave的 maven-war-plugin 插件和 maven-ear-plugin 插件。下面通过一个例子解释下:
先介绍下项目结构:
mavenaggregator(项目根目录) |----another-project ——代表项目其他模块|----my-project ——代表项目web 模块|----projectear ——打包 ear 的模块|----webwar ——打包 war 的模块|----pom.xml ——聚合项目的pom文件,用于一次构建整个项目
解释:这里创建一个聚合项目,然后在其中创建两个子模块,分别用于打包 war 和 ear。这样,每次构建整个聚合项目时,就能得到我们想要的 ear 包了。
war
在webwar 项目的 pom.xml 中添加如下配置:
<!-- 构建项目所需要的信息 --> <build><finalName>myprojectwar</finalName><plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.1.1</version><configuration><webResources><resource><directory>src/main/webapp</directory><targetPath>verification</targetPath><filtering>true</filtering></resource></webResources></configuration> </plugin> </plugins> </build>
这里配置也指定了web项目的前台文件夹。
ear
首先,因为我们是要将整个项目都打包成一个ear 包,因此我们的projectear 模块会依赖其他模块,添加依赖如下:
<!-- 其他代码 --> <dependencies> <dependency> <groupId>com</groupId> <artifactId>my-project</artifactId> <version>${project.version}</version><type>jar</type> </dependency> <dependency> <groupId>com</groupId> <artifactId>another-project</artifactId> <version>${project.version}</version><type>jar</type> </dependency> <dependency> <groupId>com</groupId> <artifactId>webwar</artifactId> <version>${project.version}</version><type>war</type> </dependency> </dependencies>
<!-- 其他代码 -->
然后在pom的build元素中配置 maven-ear-plugin 插件,同时指定要打包到ear 文件的jar包和资源。
<!-- 其他代码 --><build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ear-plugin</artifactId> <version>2.9</version> <configuration><!-- 指定要打包的 jar包和资源文件 --><packagingIncludes>META-INF/**,**/*.jar,**/*.war</packagingIncludes> <!-- 指定要打包进来的模块 --><modules> <jarModule> <groupId>com</groupId> <artifactId>another-project</artifactId> <includeInApplicationXml>true</includeInApplicationXml> </jarModule> <jarModule> <groupId>com</groupId> <artifactId>my-project</artifactId> <includeInApplicationXml>true</includeInApplicationXml> </jarModule> <webModule> <groupId>com</groupId> <artifactId>webwar</artifactId> </webModule> </modules></configuration> </plugin> </plugins> </build>
<!-- 其他代码 -->
最后回到项目根目录对整个项目进行一次打包即可:
mvn clean package
完整代码
Maven打包war和ear相关推荐
- Maven 打包war文件
2019独角兽企业重金招聘Python工程师标准>>> pom.xml设置 1.设置打包类型为war <packaging>war</packaging> 2 ...
- SpringBoot项目在使用Maven打包war中遇到的问题
问题描述 在使用maven打包(package)springboot项目为war项目后,在本地机器上使用Tomcat跑这个项目,访问资源时出现下面的错误: o.s.b.w.servlet.suppor ...
- maven打包war,导入本地jar包
方法1: 一 . 在项目根目录创建lib文件夹,把jar放入lib文件夹中 二 . 在项目中使用本地jar pom文件配置如下: <properties><project.build ...
- idea maven打包war包项目
1.配置打包方式 2.pom文件添加如些依赖, <dependency><groupId>javax.servlet</groupId><artifactId ...
- maven 打包war包时忽略一些配置文件
使用过tomcat的童鞋应该都知道,tomcat是支持加载外部配置文件的,所以我们生成war包时不应该将配置文件也打包到war中,那么我们该怎么排除掉配置文件呢? 我就直接发一个pom.xml中的一个 ...
- maven打包war包
打包: https://blog.csdn.net/u012586389/article/details/67635480 遇到的问题: 一.解决No compiler is provided in ...
- java ear war_[转] 基于Java的打包jar、war、ear包的作用与区别详解
以最终客户的角度来看,JAR文件就是一种封装,他们不需要知道jar文件中有多少个.class文件,每个文件中的功能与作用,同样可以得到他们希望的结果.除jar以外对于J2EE来说还有war和ear.区 ...
- 使用idea进行Maven打包异常:Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war
使用idea进行Maven打包异常:Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war 参考文章: (1) ...
- 【Maven】项目打包-war包-Jar包[IDEA将项目打成war包]
转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] 首先,项目必须得是Maven配置的项目. 增加了一个发布插件来实现. 在项目的pom ...
最新文章
- 珍惜鼠标,慎用双击。maxthon浏览器的双击功能毁了我一个微软鼠标一个罗技鼠标,伤心...
- 【学习笔记】Linux 命令万字解析(超详细)
- ThinkPHP入门--后盾视频
- ASP.NET页面对象模型:Page类介绍
- 防止页面被iframe包含进去
- avi和音频合成 ffmpeg_使用Java和ffmpeg把音频和视频合成视频的操作方法
- Xml转换成html表格代码,如何用C++代码将XML文件转换为HTML表格?
- onSingleTapUp()和onSingleTapConfirmed()的区别
- 文档流、脱离文档流分析
- 盘点俄罗斯大神写的几款软件,你用过几个?最后1个是我的童年
- 电力系统matlab实验报告,电力系统分析潮流实验报告
- 大数据技术原理与应用(第八章HBase测试)
- Ubuntu 18.04 firefox浏览器装flash
- C语言发展史——程序猿抗争史
- wps怎么下载仿宋gb2312_仿宋gb2312字体
- 法国蓬皮杜中心天猫官方旗舰店开业;洲际集团旗下高端品牌voco全球开业及签约酒店数突破100家 | 美通企业日报...
- 三大范式,ER图,外键,视图,索引,触发器
- 刷脸认证如何实现人脸又快又准完成校验?
- 离散傅里叶变换DFT
- 论文计算机的教学方法,对于计算机教学方法的探讨论文原稿