如何用 maven 同时 install jar 和 war

环境:

jdk 1.6

maven 3.0.3

 

背景:

项目在一个super pom下,有多个平行module,在各级依赖中,有一个module 在 pom 中定义 package war,但是开发阶段,只需要其中的jar包来使用。如果一直使用其 war 包来开发调试,maven overlay 会占用较多时间。

于是新的需求就是:将这个module 同时打包 jar 和 war 并 intall 到本地 repository 中。开发阶段就用jar,部署用war。

 

解决思路

使用 maven-jar-plugin ,定义在 phase package 阶段同步打 jar 包;

然后在 maven install 时,maven 会将这个 module 的 jar、war、ear、pom 等install到本地repository (此动作是自动完成,有几个就install 几个,无需配置)

 

具体操作:

在pom中加入 maven-jar-plugin 2.3.1

 

其中要注意的是,声明 classifier 为任何你需要的字符。


因为这样可以避免一个问题:

如果在 pom 中定义 package 为 war,

运行 maven package 后,在项目 target 目录下成功产生 XX.jar 和 XX.war ,

但运行 maven install,却只把 XX.jar 安装到 repositoy 中的  XX.war,其中内容仅是 jar 包内容。

而XX.war 就不install 到 repositoy 了。

 

加入 classifier 后产生: XX-api.jar 和 XX.war,

那么maven install 会将这两个文件同时安装到本地 repository 中,不会产生上述问题。

 

后记:

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


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值