(一)maven入门
创始人
2025-05-28 04:04:31
0

目录

maven能做什么

maven安装

使用maven快速创建一个工程

maven的约定

pom.xml初步介绍

对项目进行打包

执行打好的jar包


maven能做什么

  • 自动化的单元测试,生成单元测试覆盖率报告,以及单元测试运行错误报告
  • 将多工程的项目集成在一起
  • 依赖管理(下载,版本调节,版本升级)
  • 编译,打包,发布
  • 小结:依赖管理,构建管理,模块化拆分管理,全部自动化

maven安装

  • 1、确保安装了JDK
  • 安装jdk和jre两个东西
  • 在windows上配置JAVA_HOME环境变量,值应该是java的安装目录;配置Path环境变量,在里面加入%JAVA_HOME%/bin
  • 验证java是否安装成功:打开windows命令行,运行java -version
  • 2、在官网下载maven的包
  • apache-maven-3.5.2-bin.zip
  • 3、解压缩maven的包到某个目录中
  • 4、配置maven的环境变量
  • 配置M2_HOME环境变量为maven的安装目录
  • 在PATH环境变量中,加入%M2_HOME%\bin
  • 5、执行mvn -v命令,检查安装是否完成
  • 6、设置MAVEN_OPTS环境变量
  • maven也是用java写出来的项目,也是要启动jvm来运行maven代码,进而执行各种操作的。因此maven自身的jvm内存大小也是要关注的,如果在构建特别大的项目时,可能会出现maven自身jvm内存不够,导致构建失败,比如OOM的异常。
  • 如果是windows,则修改bin/mvn.bat(mvn.cmd)文件,如果是linux,则修改bin/mvn文件。
  • 设置MAVEN_OPTS环境变量,就是设置maven的jvm参数,可以设置为-Xms128m -Xmx512m。
  • 7、设置maven的配置文件位置
  • maven有一个重要的配置文件,就是settings.xml,这个文件默认是在%M2_HOME%/conf目录下面的,但是如果你升级maven的版本,那么可能导致新的安装包的settings文件又是一片空白。
  • 所以一般maven的配置文件都会放在当前用户的目录下的~/.m2/settings.xml中,这样就是对当前用户有效。

(1)mvn help:system

  • 会自动下载一大堆东西,然后的话呢,就会在你当前windows登录用户的,c盘下面的用户文件夹,里面有一个当前登录账号的目录,里面的就是会自动创建一个.m2目录出来 

(2)然后将maven安装目录里的conf目录下的settings.xml配置文件拷贝到.m2目录里去,就ok了,作为以后maven全局唯一的配置文件

使用maven快速创建一个工程

  • 为了加快速度,在settings.xml中加一段配置,用国内阿里云的镜像仓库去下载各种东西
nexus-aliyun*Nexus aliyunhttp://maven.aliyun.com/nexus/content/groups/public
  • 随便找一个地方创建一个目录(D:\workspace\demo),然后在那个目录中执行下面的命令,基于maven创建一个工程:

mvn archetype:generate "-DgroupId=com.bema.maven"  "-DartifactId=maven-first-app" "-DarchetypeArtifactId=maven-archetype-quickstart" "-DinteractiveMode=false"

  • 此时maven会在当前目录下,新建了一个目录,名称就是-DartifactId指定的名称。进入这个maven-first-app目录,就可以看到maven自动给我们初始化好了一个工程对应的目录结构。

maven的约定

  • 约定了maven工程目录结构
  • src/main/java目录包含了这个项目的java源码
  • src/test/java目录包含了测试代码
  • pom.xml文件是maven的核心配置文件,是这个项目的Project Object Model。

pom.xml初步介绍

  • :pom.xml中的顶层元素
  • :POM本身的版本号,一般很少变化
  • :创建这个项目的公司或者组织,一般用公司网站后缀,比如com.company,或者cn.company
  • :这个项目的唯一标识,一般生成的jar包名称,会是-.这个格式,比如说myapp-1.0.jar
  • :要用的打包类型,比如jar,war,等等。
  • :这个项目的版本号
  • :这个项目用于展示的名称,一般在生成文档的时候使用
  • :这是这个项目的文档能下载的站点url,一般用于生成文档
  • :用于项目的描述

对项目进行打包

使用mvn package命令,对一个工程进行构建,构建出来一个可以执行的java jar包。

直接maven自动给我们下载了jar包,不再需要我们自己去管理依赖了,maven自动化管理依赖

运行单元测试、编译、打包,自动化运行了单元测试的用例,自动化把你的java源代码编译成了.class文件,自动化把我们的代码打包成了一个jar包

执行打好的jar包

java -jar

  • java -jar myClass.jar

执行该命令时,会用到目录META-INF\MANIFEST.MF文件,在该文件中,有一个叫Main-Class的参数,它说明了java -jar命令执行的类

  • java -jar  myClass.jar param1 param2

运行jar包,会自动到 jar 包中查询mainfest中定义的启动类并运行 param1,param2 为main方法的参数可不填


java -cp

  • java -cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库,jar包之类,需要全路径到jar包,

window上分号“;”    

linux上分号“:”

  • java -cp .;myClass.jar packname.mainclassname    

表达式支持通配符,例如:java -cp .;c:\classes01\myClass.jar;c:\classes02\*.jar  packname.mainclassname 

  • java -cp lib/*;etc/ com.Start param1 param2,将lib下的所有jar文件以及etc下的所有配置文件添加到 classpath 中 并在classpath 中寻找 com.Start类(main方法类)并运行param1,param2 为main方法的参数可不填

注意:jar 文件引入classpath,通配符不能写成 *.jar, 只能使用 * 或 123*

注意:配置文件引入classpath,只能写到目录 /, 不能添加 * 
 

maven命令构建

1、maven一定会去考虑settings.xml配置文件里的一些配置

2、maven会去解析你的maven工程的pom.xml

3、maven会去看你的pom.xml里面声明了哪些依赖

4、maven会去本地的仓库里去找有没有那些依赖,比如有没有junit

5、如果本地仓库没有junit,那么就会去远程仓库去找,下载junit。所谓的远程仓库里包含了几乎所有的依赖包,~/.m2/repository,本地仓库

6、远程仓库下载到了junit以后,就会放到本地仓库,缓存起来,供你以后去使用

  • maven的远程中央仓库 到%M2_HOME%/lib下面找,maven-model-builder-3.5.2.jar的pom文件,https://repo.maven.apache.org/maven2/

相关内容

热门资讯

黄金闪崩9%!白银跌27%?别... 伦敦金现一天跌9.45%,A股黄金概念股大面积跌停;白银更是单日暴跌26.77%。一夜之间,曾经高歌...
周末这两大重要消息,对2月A股... 刚过去的交易周(1月26日至30日),A股整体呈现放量震荡格局,日均成交额超3万亿元。在大资金持续净...
新任美联储主席提名人选,为什么... 新任美联储主席提名人选终于揭晓。 据新华社报道,美国总统特朗普30日提名美联储前理事凯文·沃什为下任...
上游观察・两会|“十五五”开新... 2月1日上午,2026重庆两会圆满落幕。 回望“十四五”,新重庆交出亮眼答卷——成为中西部地区首个经...
雷军确认一月锁单未交付小米YU... IT之家 2 月 1 日消息,小米今日公布小米 YU7 全新「7 年低息」方案,对于“一月锁单未交付...
项链小红书获客封神攻略!家装人... 做项链饰品的宝子是不是都有同款崩溃:拍100张精修图、写半天文案,笔记互动却个位数;投流花了钱,到店...
SpaceX申请部署100万颗... 大象新闻2026-02-01 10:39:51 据美国《个人电脑杂志》网站1月31日报道,马斯克旗下...
美股点金丨避险情绪升级,美股2... 美股本周尾盘走低,不过三大股指仍以亮眼表现收官1月。下周市场将迎来月度就业报告,外界对货币政策预期可...
肿瘤患者饮食“三不要三要”,吃... 一、饮食“三不要”,避开抗癌饮食坑 1. 不要轻信“饿死癌细胞”:癌细胞会优先抢夺身体营养,盲目节...
宜家在中国败给了谁? 作者 | 会写字的机器猫 来源|新消费智库 图片 | AI生成 新消费导读 上海宝山宜家商场,那个...
证监会拟扩大战略投资者类型并明... 记者1月30日从中国证监会获悉,为贯彻落实《关于推动中长期资金入市的指导意见》和《关于推动中长期资金...
突然大跌!加密货币市值一夜蒸发... 2月1日凌晨,比特币一度跌至75719美元/枚,跌至2025年4月以来的最低水平。截至发稿,比特币回...
刚刚,大跳水!超42万人爆仓!... 来源:券商中国 加密货币,遭遇抛售潮! 凯文·沃什被提名为下一任美联储主席所产生的后续效应,正持续波...
做好银行网点“加减法” 国家金融监督管理总局网站披露的信息显示,2025年共有约1.1万家银行业金融机构的线下网点获准退出,...
金价暴跌引热议,网友:商场门口... 来源:中国基金报 随着国际金价急速下跌,国内首饰金价也迎来大幅回调。 1月31日,老庙报1546元/...
内蒙古一银行员工将储户220万... 内蒙古一银行员工将储户220万元存款转走并挥霍,银行称员工已离岗不愿承担赔偿 1月31日,有媒体报...
老年医学科进修轶事|老年医学如... 和年苑,北京协和医院老年医学科公众号,传递老年医学的价值和声音 在这里,了解当代老年医学 Autum...
和讯投顾余兴栋:周五杀跌,下周... 周五大盘大幅度的杀跌又探底回升,收出一根长长的下影线,不少的朋友又在问我,那这根k线是不是就意味着调...
【数智周报】马化腾评豆包手机;... 【数智周报将整合本周最重要的企业级服务、云计算、大数据领域的前沿趋势、重磅政策及行研报告。】 观点马...