maven 查找流程
- maven 用户——> 本地仓库——>查找私服——>远程仓库
mvn 命令
mvn clean 清除
mvn compile 编译
mvn test 执行测试用例
mvn package 打包
mvn install 打包后上传到本地仓库
mvn deploy
scop的作用
test:测试环境生效 juint
comile:编译和运行时都会生效
provide:编译时生效,打包时候不生效 servlet
runtime:编译时不生效,打包时生效 如mysql-connector-java
版本命名
- x1.x2.x3 x1: x2:表示分支 x3:标识子分支
如:1.1.1-SNAPSHOT->1.1.1.BETA->1.1.1.RELEASE
maven的聚合
maven的依赖传递
maven的依赖层次和顺序关系
A -依赖B 依赖C;B依赖D1.1 C依赖D1.2;A依赖D的版本取决于B和C的顺序
顺序优先,层次优先,短的优先
maven 私服nexus的搭建
简介
下载地址:
vi /etc/profile:
vi nexus.properties
nexus-work :私服的位置
type:
hosted:私有化仓库,专门用于存储内部生成的文件;
- 3rd party
- snapshots:本地项目的快照仓库
- release:本地项目发布的正式版本
group:分组仓库;
- 整合仓库,可以整合releas,snap central,
proxy:公网发布的jar,如spring/mybatis
central:中央仓库
apache snapshots:apache 的快照
私服访问方式
在pom.xml中配置站点
<repositories> <repository> <id>nexusSnapshots</id> <name>snapshots</name> <url></url> </repository> </repositories>
在settings.xml全局配置
mirror:代表仓库从哪个仓库下载;profile,reponsitory:代表哪些仓库的配置
priole: 配置仓库站点,可以配置多个
activeProfiles:激活priole,相当于一些全局变量
distributionManagement 配置deloy,deploy前需要检查是否有权限
<snapshotRepository> <id>fuze-repo</id> <url>${fuze-repo.root.path}/repositories/snapshots</url> </snapshotRepository>
maven的生命周期
- clean lifecycle : 构建前的清理工作
- pre-clean 执行一些需要在clean之前完成的工作
- ==clean== 移除所有上一次构建生成的文件
- post-clean 执行一些需要在clean之后立刻完成的工作
- Default lifecycle: 构建的核心部分,编译、打包、部署、上传
- ==validate== 项目及所必须的环境验证
- initialize 初始化构建状态,例如设置属性或创建目录。
- generate-sources 生成次源包
- process-sources
- generate-resources
- process-resources 复制并处理资源文件,至目标目录,准备打包。
- ==compile== 编译项目的源代码。
- process-classes
- generate-test-sources
- process-test-sources
- generate-test-resources
- process-test-resources 复制并处理资源文件,至目标测试目录。
- test-compile 编译测试源代码。
- process-test-classes
- ==test== 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。
- prepare-package
- ==package== 接受编译好的代码,打包成可发布的格式,如 JAR 。
- pre-integration-test
- integration-test
- post-integration-test
- ==verify==
- ==install== 将包安装至本地仓库,以让其它项目依赖。
- ==deploy== 将最终的包复制到远程的仓库,以让其它开发人员与项目共享。
- site lifecycle:项目报告生成,站点文档生成
- pre-site 执行一些需要在生成站点文档之前完成的工作
- site 生成项目的站点文档
- post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
- site-deploy 将生成的站点文档部署到特定的服务器上
参考文档
maven 插件的使用
核心插件
插件使用
<build><plugins><plugin><groupId></plugin></plugins></build> 如:<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>2.4</version> <executions> <execution> <id>attach-source</id> <phase>verify</phase> <goals> <goal>jar-no-fork</goal> </goals> </execution> </executions> </plugin>
executions:execution
phase: 什么时候,生命周期阶段
goals:goal:干什么事情,生命周期目标
configuration:需要什么配置
rar 插件说明:
打包依赖包
mvn rar:rar