maven项目同时打war包和jar包

需求

maven项目同时打war包和jar包,并install到本地仓库

解决方案

使用 maven-jar-plugin ,定义在 phase package 阶段同步打 jar 包;然后在 maven install 时,maven 会将这个 module 的 jar、war同时install到本地repository (此动作是自动完成,有几个就install 几个,无需配置)

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.3.1</version>
    <executions>
       <execution>
           <id>my-jar</id>
           <phase>package</phase>
           <goals>
              <goal>jar</goal>
           </goals>
           <configuration>
              <classifier>api</classifier>
           </configuration>
       </execution>
    </executions>
</plugin>

install问题

如果在 pom 中定义 package 为 war,运行 maven package 后,在项目 target 目录下成功产生 XX.jar 和 XX.war 。
但运行 maven install,却只把 XX.jar 安装到 repositoy 中的XX.war,其中内容仅是 jar 包内容,而XX.jar 就不install 到 repositoy 了。
加入 classifier后缀 后产生: XX-api.jar 和 XX.war,那么maven install 会将这两个文件同时安装到本地 repository 中,不会产生上述问题。

同样的道理,如果项目定义 package jar,同时需要打包 jar 和 war,应该也可以搭配使用 maven-war-plugin 来达成。

webxml问题

如果打war包遇到以下问题,加上failOnMissingWebXml属性值
Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode)

<properties>
     <failOnMissingWebXml>false</failOnMissingWebXml>
 </properties>
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大佬腿好粗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值