Maven项目中如何同时Install成JAR和WAR包
2012-11-03 16:32
330 查看
项目背景:
项目在一个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同时install到本地repository
(此动作是自动完成,有几个就install
几个,无需配置)
解决方案:
在pom中加入
maven-jar-plugin 2.3.1
<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>
其中要注意的是,声明 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 来达成。
相关文章推荐
- Maven项目中如何同时Install成JAR和WAR包
- Maven :web项目同时打包成war和jar
- Maven中如何配置WAR依赖WAR和JAR的多模块项目结构
- Maven中如何配置WAR依赖WAR和JAR的多模块项目结构
- maven打包web项目时同时打包为war和jar文件(备忘用)
- Maven为web项目同时打jar和war包,deploy时只上传jar包的配置
- maven打包web项目时同时打包为war和jar文件的方法
- 利用maven在一个项目中同时打war包和jar包
- Maven中如何配置WAR依赖WAR和JAR的多模块项目结构
- 如何在springboot项目中直接导入本地jar文件而不是远程maven仓库的依赖
- maven如何合并两个war到一个war项目中
- intellij IDEA 如何将MAVEN项目导成WAR包
- maven如何打WAR包,看到target目录下面会生成JAR包,如何改成WAR?
- idea maven项目如何使用lib下得jar包
- maven项目如何生成war文件
- Maven项目同时使用lib下的Jar包
- 基于spring的maven项目如何打可独立执行的jar包
- Maven 父子项目 聚合与继承 生命周期 打包插件 依赖打包 jar pom war
- eclipse联网总是自动下载xml和jar,如何关闭:window--preference--》【查找download】(可能和maven项目有关)
- Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图