Maven支撑下的War应用依赖另外一个WAR应用的解决方案
最近在做项目中,用Maven管理项目间的依赖关系,遇到一个问题,快折腾死了,不过初步试出来一种解决方案。在此把问题及解决方案描述一下,以资共享。
问题描述:有两个项目A和B,Dynamic Web Project。依赖关系是,B-->A,一种方式是利用maven-war-plugin的Overlay机制(例子可参见官网),但这种解决方案默认是将两个Web应用的资源进行合并,相关的class都会被复制到WEB-INF/classes下面,相关的JSP等资源也合并到一起。我的要求是A的class被独立打包成一个jar,在发布到应用服务器后存在于B应用的WEB-INF/lib下面,A应用的其他资源都不要。
处理思路:
一、A应用的POM处理
<?xml version="1.0" encoding="UTF-8"?>
<project ......">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xxx</groupId>
<version>0.0.1-SNAPSHOT</version>
<name>A-web</name>
<artifactId>A-web</artifactId>
<packaging>war</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<!--注意增加这两行,在打包时相关的类会被独立打成jar-->
<attachClasses>true</attachClasses>
<classesClassifier>api</classesClassifier>
</configuration>
<version>2.3</version>
<executions>
</executions>
</plugin>
</plugins>
</build>
</project>
打包完成后,包含A-web.war和a-web-api.jar及其他文件。
二、B应用的POM处理
<?xml version="1.0" encoding="UTF-8"?>
<project ...........>
<modelVersion>4.0.0</modelVersion>
<groupId>com.xxx</groupId>
<version>0.0.1-SNAPSHOT</version>
<name>B</name>
<artifactId>B</artifactId>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>com.xxx</groupId>
<artifactId>A-web</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
<classifier>api</classifier>
</dependency>
</dependencies>
</project>
注意以上的依赖中的type属性为jar,而不是默认的war。classifier的值api与A中的classesClassifier的值api要一致。
Maven支撑下的War应用依赖另外一个WAR应用的解决方案的更多相关文章
- Eclipse下Maven新建项目、自动打依赖jar包(包含普通项目和Web项目)
不多说,直接上干货! 当我们无法从本地仓库找到需要的构件的时候,就会从远程仓库下载构件至本地仓库.一般地,对于每个人来说,书房只有一个,但外面的书店有很多,类似第,对于Maven来说,每个用户只有一个 ...
- maven无法下依赖jar文件的解决方案
问题描述: Plugin org.apache.maven.plugins:maven-clean-plugin:2.5 or one of its dependencies could not be ...
- Maven 工程下 Spring MVC 站点配置 (一)
最近,查找一些具体资料时,虽然会有很多,但是系统的却很少,尤其是对maven 下 spring mvc 站点搭建的配置,总是说的很多但让新手一目了然的步骤却少之又少. 对此闲暇时整理了一下,做了一套较 ...
- 【spring boot】idea下springboot打包成jar包和war包,并且可以在外部tomcat下运行访问到(转)
转自:https://www.cnblogs.com/sxdcgaq8080/p/7727249.html 接着上一章走呗:http://www.cnblogs.com/sxdcgaq8080/p ...
- Maven入门指南③:坐标和依赖
1 . 坐标 maven 的所有构件均通过坐标进行组织和管理.maven 的坐标通过 5 个元素进行定义,其中 groupId.artifactId.version 是必须的,packaging 是可 ...
- Maven环境下搭建SSH框架
© 版权声明:本文为博主原创文章,转载请注明出处 1.搭建环境 Maven:3.3.9 Struts2:2.5.10 Spring:4.3.8.RELEASE Hibernate:5.1.7.Fina ...
- 【spring boot】6.idea下springboot打包成jar包和war包,并且可以在外部tomcat下运行访问到
接着上一章走呗:http://www.cnblogs.com/sxdcgaq8080/p/7712874.html 然后声明一点,下面打包的过程中,scope一直都是使用默认的范围 <!--用于 ...
- idea下springboot打包成jar包和war包,并且可以在外部tomcat下运行访问到
接着上一章走呗:http://www.cnblogs.com/sxdcgaq8080/p/7712874.html 然后声明一点,下面打包的过程中,scope一直都是使用默认的范围 <!--用于 ...
- Maven工程下报错:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
Maven工程下,webapp下面新建index.jsp文件,报如下错误. 原因很简单,没有安装如下maven依赖包: <dependencies> <!-- JSP相关 --> ...
随机推荐
- 20172302 《Java软件结构与数据结构》实验三:查找与排序实验报告
课程:<Java软件结构与数据结构> 班级: 1723 姓名: 侯泽洋 学号:20172302 实验教师:王志强老师 实验日期:2018年11月19日 必修/选修: 必修 实验内容 (1) ...
- CocosCreator小栗子
主要是了解了场景切换的API,见下: 开始场景和结束场景内,按钮挂相同的Btn脚本,主要是切换到场景2中: Btn脚本如下, onLoad:function() { this.node.on('mou ...
- 本地Sql Server数据库传到服务器数据库
将网站项目上传到服务器时,会遇到本地数据库该如何上传的问题.下面在西部数码购买的虚拟主机的基础上,解决数据库上传问题. 1.在西部数码购买虚拟主机后,会赠送了一个数据库,该数据库就可以作为网站项目 ...
- 中国非正常死亡最高的行业 TOP 10
1月2日晚,佟大为等艺人.业内人士及小马奔腾集团员工纷纷在朋友圈或微博上发布消息,小马奔腾集团董事长李明因心肌梗塞于当晚去世,年仅47岁. 这再次将创业者和职场人士健康问题推到了公众面前,而就在去年中 ...
- POI设置excle单元格样式
Java利用POI生成Excel强制换行 使用POI创建一个简单的 myXls.xls 文件 常用的包为 org.apache.poi.hssf.usermodel.*; ...
- SpringMvc+Mybatis+Maven+Mysql做一个CRUD的简单例子
本文档结合 SpringMVC. Mybatis. MySQL,说明如何实现一个简单的数据库单表 CRUD操作.开发工具使用集成了spring mvc的eclipse(Spring Tool Suit ...
- F800上的CPU有多少个core?
本来想看看F800的一个节点上,每个core的cpu的使用情况.使用下面的命令,可以进行查看: top –P 从命令输出来看,好像是有32个core嘛. 使用下面的命令可以看到具体的CPU的信息. d ...
- postgre 导出单表和导入
pg除了可以通过dump的方式导入和导出.如果只是导出数据,可以直接使用copy 导出 COPY user TO '/tmp/data/test.csv' WITH csv; COPY user(na ...
- RHEL磁盘修复
0. 1.基础工具:e2label /device/xxx [new label name] 显示/设定设备的label名称 2.e2fsck 修复工具,用-b 指定备用的superblock位置 ...
- N1, T1刷机记录
硬件配置 N1和T1使用的是晶晨Amlogic方案的芯片, 配置明细分别如下, 都是现在盒子的主流配置 N1CPU: Amlogic S905, ARM Cortex-A53 四核 up to 2.0 ...