注册私有jar
有些jar包本地仓库没有,然后远程仓库也没有,是私有的,或者自己打的jar包;那这种情况下怎么使用呢?难道只能每个项目都将其拷贝到lib目录下吗?其实不用,我们可以将其注册到本地仓库,比如我将一个jar放在项目lib目录下,然后在idea中打开Terminal,输入
mvn install:install-file -Dfile=lib/jxl.jar -DgroupId=jxl.write.bif -DartifactId=jx-biff -Dversion=1.0 -Dpackaging=jar
其中-Dfile是jar相对目录,-DgroupId、-DartifactId、-Dversion就是dependency下的三个属性;执行该命令后就能在本地仓库找到它了;最后需要在pom文件中添加如下配置就可以使用了
<dependency>
<groupId>jxl.write.bif</groupId>
<artifactId>jx-biff</artifactId>
<version>1.0</version>
</dependency>
Maven打包
有三个打包命令,但是三个命令所经历的声明周期是不同的,如下:
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私服仓库