(一)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/

相关内容

热门资讯

黄金“不灵了”,高端金饰的溢价... 古法黄金到底能不能走出脱离金价波动的独立溢价 作者:赵心怡 2026年开年,国际金价一路狂飙至近56...
朗迅科技由董事长徐振控制46%... 瑞财经 刘治颖 6月24日,杭州朗迅科技股份有限公司(以下简称:朗迅科技)深主板IPO获受理,保荐机...
两部门:2030年可再生能源制... 【两部门:2030年可再生能源制氢规模达到200万吨】财联社6月25日电,国家发展改革委、国家能源局...
原创 警... 大家好,这里是全球脉冲。 6月16日,日本央行宣布加息25个基点,政策利率上调至1%,创下31年来最...
黄金钻石回收怎么选?上海市场常... 近年来黄金价格持续走高,不少上海市民都有变现家中闲置黄金首饰、投资金条的打算。但市面上回收门店数量众...
专访火山引擎谭待:模型好对Ma... 文 | 邓咏仪 编辑 | 张雨忻 火山引擎总裁谭待 来源:火山引擎 过去三年,火山引擎总裁谭待给团...
女董事长深夜被带走,牵出金融旧... *此图由AI生成 作者| 史大郎&猫哥 来源| 是史大郎&大猫财经Pro 大半夜的,一家上市公司董事...
盯盯拍报考港交所上市:出海翻红... 撰稿|贝多 来源|贝多商业&贝多财经 6月22日,盯盯拍(深圳)技术股份有限公司(下称“盯盯拍”)递...
苏州千亿市值上市公司+1! A股“苏州板块”又诞生了一家千亿市值企业。 昨日(6月25日),苏州上市公司永鼎股份股价在昨日涨停的...
芯片股猛拉!600667,一字... 【导读】创业板指一度涨超2%,存储芯片、半导体、电子元器件等方向涨幅居前 中国基金报记者 李智 一起...
分析师:海峡收费与否已不重要 ... 来源:格隆汇APP 格隆汇6月25日|阿曼方面重申,霍尔木兹海峡未来安排不涉及通行费。美国财经网站i...
《内外贸一体化企业评价通则》团... 齐鲁晚报·齐鲁壹点记者 管悦 6月25日,《内外贸一体化企业评价通则》团体标准审查会在济南召开。该标...
提升AI智能体工作流的速度与能... 智能体工作流是一种由AI驱动的软件系统,它通过串联多个模型与外部工具来处理复杂任务,例如分析视频并回...
热搜!又有纸尿裤被曝检出甲酰胺... 来源:市场资讯 (来源:北京商报) 网友:“囤了200多包”。 近日,多个婴幼儿纸尿裤品牌“被检出...
埃森哲内部录音曝光:企业AI使... IT之家 6 月 26 日消息,科技媒体 404Media 昨日(6 月 25 日)发布博文,披露了...
FIBA期待杨瀚森表现 最新实... 北京时间6月25日消息,FIBA国际篮联公布了最新一期世界杯预选赛亚太区球队实力榜,中国男篮排在澳大...
收评:创业板指放量反弹涨2.8... 市场冲高回落后,再度震荡拉升。黄白线分化明显,权重股走势较强。量能明显放大,沪深两市成交额3.59万...
巨头财报引爆A股存储芯片板块,... 当地时间6月24日美股盘后, 美光科技(MU.US)公布截至5月31日的2026财年第三财季财报,业...
银行、消金公司助贷余额增速不得... 近日,中国证券报记者从多位业内人士处独家获悉,5月以来,多地金融监管部门对部分中小银行、消金公司下达...