maven的package与install命令区别

maven的package与install命令区别

maven的package与install命令区别

maven项目管理工具,集成了打包功能(生成jar包),主要命令如下:

  • mvn clean :清除目标目录中的生成结果

  • mvn package : 依据项目生成 jar 文件

  • mvn install :在本地 Repository 中安装 jar

package(依赖的jar包会在本地仓库生成,本项目的jar包没有在本地仓库生成)

install本项目jar包会在本地仓库生成,package是把jar打到本项目的target下,而install时把target下的jar安装到本地仓库

java启动jar包

  • java -jar myjar.jar

clean 清除target下文件,resources下载jar包,compile编译,生成class文件  源程序编译成 class 字节码文件

mvn clean package依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。

mvn clean install依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段。

mvn clean deploy依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段。

由上面的分析可知主要区别如下,

package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库

install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库

deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库 

本项目的pom配置,会把依赖的jar包也打到目标jar包里面

若发现mvn install失败,找到更新失败的那个包,直接删掉,继续执行mvn install,有可能是网络问题导致的mvn更新失败

-U 强制远程更新,否则默认每天只更新一次

比如-D的使用:mvn package -Dmaven.test.skip=true,即打包的时候跳过单元测试,install、deplay命令都可以使用。

mvn install  -U -DskipTests

 

  • javac haha.java 编译haha.java

  • java haha  运行haha

  • java -jar aaa.jar  运行jar包

FutureTech