背景:
项目在一个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
- <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 中,不会产生上述问题。
引用:
<dependency>
<groupId>com.my</groupId>
<artifactId>my-jar</artifactId>
<classifier>api</classifier>
<version>${my.version}</version>
<type>jar</type>
</dependency>
后记:
同样的道理,如果项目定义 package jar,同时需要打包 jar 和 war,应该也可以搭配使用 maven-war-plugin 来达成。
分享到:
相关推荐
maven-jar-plugin-3.1.1.jar
maven-aether-provider-3.2.1-sources.jar maven-antrun-plugin-1.3.jar maven-archiver-2.2.jar maven-artifact-3.2.1-sources.jar maven-assembly-plugin-2.2-beta-5.jar ...maven-war-plugin-2.3.jar
通过maven的命令 mvn install:install-file -Dfile……比较繁琐,我把这个繁琐的工作做了一次封装,批量操作,方便自己也分享给各位! (1)运行环境,需要用tomcat8.0及以上版本(其他容器JBoss、WebLogic期待您...
Pom:文件夹,jar和war文件,mavenProject:一个项目,可以放jar和war包,通过pom,一般新创建的maven Project是POM 3.4.创建一个Maven Model 最外面的项目是MavenProject,其它的全部是Maven Model 3.4.1.创建JAR 目录...
2. 安装和运行Maven 2.1. 验证你的Java安装 2.2. 下载Maven 2.3. 安装Maven 2.3.1. 在Mac OSX上安装Maven 2.3.2. 在Microsoft Windows上安装Maven 2.3.3. 在Linux上安装Maven 2.3.4. 在FreeBSD或OpenBSD上...
Maven项目管理工具,可以将一个完整的项目拆成一个一个模块进行开发,而一些比较通用的模块就可以作为公用组件。在其他项目中直接依赖使用,比如:公用的方法,权限组件等等。 一,新建一个简单的Maven工程,这个...
该项目是使用capsule.io的简单示例以下示例启发了它 建立: maven clean install跑步: java -jar target/capsule-runnable-war-maven.war然后可以从http://localhost:8080/hello访问该servlet。
springboot快速启动 Eclipse-Maven Spring Boot快速入门...delare包装为pom.xml中的war war打开cmd转到主目录运行“ mvn clean install”转到目标文件夹并运行“ java -jar springboot-quickstart-0.0.1-SNAPSHOT.jar”
主要特征: 合理的默认值 - 你可能只是mvn package aci:push 适用于独立应用程序 (JAR) 和网络应用程序 (WAR)构建项目从源代码构建和运行: 首先签出和mvn install mvn install出此存储库并mvn install 以下是您...
Web应用程序是独立的.jar和可部署.war(Tomcat),具有FileWalker等功能,带有通过SQL查询进行递归DBUnit导出器SQL编辑器,Web Shell和Groovy编辑器 安装 要求 Java 8(JDK) 阿帕奇Maven 网页浏览器 用Maven构建 ...
mvn install:install-file -DgroupId=flux -DartifactId=flux -Dversion=8.0.10 -Dpackaging=jar -Dfile=flux.jar 使用 maven 构建战争 mvn war:war 将 war 文件从 target/flux-jsf.war 部署到您的应用程序服务器...
mvnpackage打包,将项目打成jar、war或者pom;mvninstall安装,将当前项目安装到本地maven库,供其他项目依赖。mvndeploy部署,在构建环境中完成,复制最终的包到远程库。执行后面的命令会自动执行前面的命令,比如...
install并且Maven将编译您的项目,并将结果放入target目录中的两个jar文件中。 如果要从命令行运行,请执行java -jar target/javaparser-maven-sample-1.0-SNAPSHOT-shaded.jar 。 如何运行此代码取决于您自己,但是...
执行ar-common模块下的maven clean 以及 maven install ar-common生成jar 安装在本地,ar-manage和ar-portal依赖此库。 项目部署 建议运行 ar-portal:war exploded。 门户网站: 访问地址: ...
使用maven编译打包,将p-connect-web下生成的war包,可以直接用java -jar PConnect*.war启动自服务运行,放在tomcat下运行都行,请使用tomcat9+. docker部署 下回分解... 使用的技术参考 spring mvc hibernate mysql...
编译后默认输出jar包,需要放到Tomcat中部署则需要先修改pom文件内的打包格式,改成war 精简服务端接口回传数据,不返回base64编码的图片 项目升级至Springboot 2 加入Eureka依赖,可通过Spring Cloud Eureka管理 ...
在proguard-maven-plugin的基础上修改而来,可以在项目构建过的时候把代码混淆,支持打成jar包和war包。 基本支持Proguard的所有功能。 博客地址: ##使用方法 先进行Maven install 然后在需要混淆代码的工程中加入...
首先将项目打包,jar、war都可。 Idea eclipse也一样,点击项目->Run as->Maven install即可。 打包成功,在下面Installing中可以找到jar包 打开 如何下载网上有很多教程,这里不在赘述。 点击左上角的新建按钮 ...
点击右侧工具栏maven-->mmtax-->lifecyle-->clean-->install等待打包完成,发布服务的时候,将mmtax-admin目录下target文件夹中的mmtax-admin.jar发布到服务器即可 基于SpringBoot的宠物店管理系统源码+数据库(毕业...