1、maven package:打包到本项目,一般是在项目target目录下。
如果a项目依赖于b项目,打包b项目时,只会打包到b项目下target下,编译a项目时就会报错,因为找不到所依赖的b项目,说明a项目在本地仓库是没有找到它所依赖的b项目。
2、maven install:打包会安装到本地的maven仓库中,如果没有设置过maven本地仓库,一般在用户/.m2目录下。
如果a项目依赖于b项目,那么install b项目时,会在本地仓库同时生成pom文件和jar文件,
可以看install b的日志:
[INFO] — maven-install-plugin:2.5.2:install (default-install) @ b —
[INFO]Installing D:\Java\workspace\b\target\b-2.7.4.RELEASE.jar to
C:\mavenRepository\com**\b\2.7.4.RELEASE\b-2.7.4.RELEASE.jar [INFO]
Installing D:\java\workspace\b\pom.xml to
C:\mavenRepository\com**\b\2.7.4.RELEASE\b-2.7.4.RELEASE.pom说明b项目已安装到本地仓库了,并且是jar和pom同时安装的. 这时候去compile a项目,编译通过.
总结:
A、maven package:打包(jar等)到本项目的target下。
B、maven install:把target下打的包(jar等)安装到本地仓库,可以供其他项目使用。
3、maven deploy:将打包的文件发布到远程参考,提供其他人员进行下载依赖。
4、常用的maven命令:
问题:
1.每一次我们把代码改了,push上去了之后,我们在使用xbox的在部署服务的时候,这个时候我们到底部署到服务器
的是什么?
答:对于当我把自己在本地的代码push上去之后,我们通过xbox进行配置,这个时候,这个时候,我们配置到服务器的时候
可能是war包也可能是各个的class文件(目前查看了一下,在xbox上面放的是jar包)
2.为什么我们有些时候在xbox部署类似于admin的项目,我们可能还要deploy其中的service项目。这个deploy是什么意思
答:是因为对于我们要部署admin的项目的时候,我们这个项目可能还要依赖service的这个项目,如果我们在service的时候
将其进行修改了,所以我们要升级一个版本号,对于admin我们就要依赖一个新的版本号的service的jar包,但是呢,这个
service的jar包只有我进行修改了,别人没有,线上的私服也没有,所以我们需要deploy的操作,把这个service的新的jar包
deploy到新的私服上面,对于我们在admin的时候,我们就可以调用新的service的jar包了,这个就是我们为什么需要在部署
admin的项目的时候我们需要deploy其中的service的项目,我们在如果修改了service中的代码以及core的代码之后,我们在
push项目的时候,我们也依旧需要把service以及core的jar包deploy上去,还有我们也需要改admin的调用这个的版本