于是新的需求就是:将这个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
</execution
</executions
</plugin
其中要注意的是,
声明 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 来达成。