groupId : artifactId: version
工程组标识:工程标识:工程版本号
maven package:
打包到本项目,一般是在项目target目录下。
如果a项目依赖于b项目,打包b项目时,只会打包到b项目下target下,编译a项目时就会报错。
maven install:
打包到本地仓库。
如果没有设置过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
maven deploy:
打包上传到远程仓库.
如:私服nexus等,需要配置pom文件
maven 私服简介
私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。
有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;
否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。
参考链接:<http://www.jianshu.com/p/e4a3ab0298df>
Maven 仓库有三种类型:
本地(local) 中央(central) 远程(remote)
Maven 依赖搜索顺序
当我们执行 Maven 构建命令时,Maven 开始按照以下顺序查找依赖的库:
步骤 1 - 在本地仓库中搜索,如果找不到,执行步骤 2,如果找到了则执行其他操作。
步骤 2 - 在中央仓库中搜索,如果找不到,并且有一个或多个远程仓库已经设置,
则执行步骤 4,如果找到了则下载到本地仓库中已被将来引用。
步骤 3 - 如果远程仓库没有被设置,Maven 将简单的停滞处理并抛出错误(无法找到依赖的文件)。
步骤 4 - 在一个或多个远程仓库中搜索依赖的文件,如果找到则下载到本地仓库已被将来引用,
否则 Maven 将停止处理并抛出错误(无法找到依赖的文件)。
快照
快照是一个特殊的版本,它表示当前开发的一个副本。与常规版本不同,Maven 为每一次构建从远程仓库中检出一份新的快照版本。
现在数据服务团队会将每次更新的代码的快照(例如 data-service:1.0-SNAPSHOT)发布到仓库中,来替换旧的快照 jar 文件。
快照 vs 版本
对于版本,Maven 一旦下载了指定的版本(例如 data-service:1.0),它将不会尝试从仓库里再次下载一个新的 1.0 版本。想要下载新的代码,数据服务版本需要被升级到 1.1。
对于快照,每次用户接口团队构建他们的项目时,Maven 将自动获取最新的快照(data-service:1.0-SNAPSHOT)。