maven系列(二)——maven应用分析
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 将生成的站点文档部署到特定的服务器上
参考文档
- http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
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
maven系列(二)——maven应用分析相关推荐
- Maven系列二setting.xml 配置详解
文件存放位置 全局配置: ${M2_HOME}/conf/settings.xml 用户配置: ${user.home}/.m2/settings.xml note:用户配置优先于全局配置.${use ...
- Maven系列学习(二)Maven使用入门
Maven使用入门 通过上一节的学习,我们已经了解和配置好了Maven,接下来需要编写代码了 1.POM(Project Object Model,项目对象模型) 和Make的Makefile类似,M ...
- maven系列:maven依赖讲解
maven的一大亮点就是依赖,看一下pom.xml文件,如 <dependency><groupId>junit</groupId><artifactId&g ...
- Maven系列三Maven内置变量
Maven内置变量说明: ${basedir} 项目根目录(即pom.xml文件所在目录) ${project.build.directory} 构建目录,缺省为target目录 ${project. ...
- Maven系列之Maven生命周期简介
Maven的生命周期其实是指它对所有的构建过程进行了反复的推敲.反思,之后总结了一套高度抽象过程.基本上包含了项目的清理.初始化.编译.测试.打包.集成测试.验证.部署..站点生成等步骤 Maven有 ...
- PE文件学习系列二 DOS头分析
合肥程序员群:49313181. 合肥实名程序员群 :128131462 (不愿透露姓名和信息者勿加入) Q Q:408365330 E-Mail:egojit@qq.com PE文件 ...
- maven详解-maven入门
这一节不用eclipse来创建maven项目,我们自己创建 一 Maven概念 二 maven安装 2.1 http://maven.apache.org/download.cgi下载 2.2 解压缩 ...
- Maven系列(二):STS(eclipse)下载并配置Maven
STS(eclipse)下载并配置Maven 今天博主将为大家分享一下STS(eclipse)配置Maven,不喜勿喷,如有异议欢迎讨论! 以下所写内容均与以前的文章有联系可以前往博文查看,陈永佳的博 ...
- Maven 系列 3:如何在 Eclipse 中集成配置 Maven(以 apache-maven-3.6.2、eclipse-jee-2019-09-R-win32-x86_64 为例)
文章目录 前言 一.打开 Eclipse 进入 Maven 配置页面 二.将本地 Maven 路径对应到 Eclipse 中 三.将配置文件集成到 Eclipse 中 四.开启 Eclipse 的 M ...
最新文章
- Makelife的使用
- Python 基础篇-正斜杠(/)和反斜杠(\)的用法
- 24点游戏java_Java实现24点小游戏
- UML中关联,聚合,组合的区别及C++实现
- 【图论】清理牛棚/Cleaning Shifts S(luogu 4644)
- Openssl-MD5
- linux-facl权限控制-移除-复制
- 【转】贝叶斯网络+马尔科夫毯 简介
- 你真的会写二分查找吗
- 在.NET/Mono上运行Java:Jeroens Frijters谈IKVM.NET
- 大学生静态HTML鲜花网页设计作品 DIV布局网上鲜花介绍网页模板代码 DW花店网站制作成品 web网页制作与实现
- 计算机机房监理细则,弱电机房工程施工监理的四大重点
- HMC5883L 磁力计校准
- 接口测试一般怎么测?接口测试的流程和步骤~
- python解密密文_ctf密码学------密文解码python脚本(凯撒解密)
- 蒲公英应用内测使用方法总结
- cad套索选择lisp_怎么将CAD2015,CAD2016的窗交窗口选择框的套索改为矩形吗
- 一看就会QuickWAP入门(转)
- 如何应对网站流量暴增
- SQL基础系列(四)——多表查询
热门文章
- Richardson外推加速技术(含Romberg详细分析)的Matlab实现
- 天津地铁行业建设现状与运营状况分析报告2022版
- GitLab将技术许可极狐公司-JH发行版来了
- 公交卡信息是在服务器还是卡片,北京“市政交通一卡通”卡号的相关说明
- 前端单元测试之Jest
- iOS - 动态库上架瘦身(去调虚拟机架构),不然验证会报错。
- 高薪程序员面试题精讲系列02之高薪面试经验分享
- Your app isn't using AndroidX Flutter错误解决
- 网络防御 --- 恶意软件与反病毒详解
- codeforces1166E. The LCMs Must be Large