Maven项目中如何同时Install成JAR和WAR包
2017-02-23 09:14
246 查看
项目背景:
项目在一个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 来达成。
项目在一个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中如何配置WAR依赖WAR和JAR的多模块项目结构
- Maven中如何配置WAR依赖WAR和JAR的多模块项目结构
- Maven :web项目同时打包成war和jar
- Maven为web项目同时打jar和war包,deploy时只上传jar包的配置
- Maven中如何配置WAR依赖WAR和JAR的多模块项目结构
- maven打包web项目时同时打包为war和jar文件的方法
- 利用maven在一个项目中同时打war包和jar包
- maven打包web项目时同时打包为war和jar文件(备忘用)
- 在使用Maven管理项目时,JSTL需同时导入jstl.jar及standard.jar。
- Maven创建工程项目如何下载所需要的jar包
- Maven 学习编之一 同时生成 jar 和 war 包
- maven配置: 生成war的同时生成jar, 并在其他artifact配置依赖于这个jar
- 基于spring的maven项目如何打可独立执行的jar包
- 如何将maven项目打包成可执行的jar
- maven如何将项目引用的所有jar包复制到lib文件夹内
- Maven 的Android项目里面的jar包(本地)、library及libs目录下so文件如何引用
- 如何将maven项目打包成可执行的jar
- maven项目,导入的jar包,没有包含在pom文件中,install失败
- 如何将maven项目打包成可执行的jar