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

相关内容

热门资讯

在大吉订购APP订购交易亏损被...   近期,不少投资者反映在“大吉订购App”上投资白银、铂金等商品遭遇严重亏损。该平台宣称提供现货订...
铂银壹号APP商品订购交易亏损...   许多中小投资者误以为网上的“商品现货订购”是合规合法的理财渠道,殊不知这背后隐藏着巨大的合规风险...
兴鑫淘金APP贵金属订购交易亏...   白银、贵金属或其他商品类投资,除国家批准的正规期货交易场所及持牌期货公司外,市面上大量第三方交易...
铂银掘金APP无资质的违规平台...   铂银掘金等平台的投资者,往往是被“注册送现金”“充值返现券”“首单免亏”等广告话术吸引,进而下载...
八方淘金APP订购交易不合规,...   “八方淘金APP”“铂银掘金APP”“铂银壹号APP”等软件被指以“现货订购”为名,实际采用高杠...
在指尖订购APP订购商品亏损被...   指尖订购APP这类平台,表面是“订购交易”,实则是披着电商外衣的非法期货陷阱。绝大多数投资者被蒙...
在犀贝易购APP做商品订购交易...   市面上打着“现货投资”“贵金属交易”旗号的APP并不少,但真正合规、受监管的平台并不多。犀贝易购...
易达淘金APP虚假商品订购交易...   易达淘金APP存在严重的虚假宣传与违规交易行为。该平台打着“商品订购”的旗号,实则通过不合规的交...
大浪淘金APP白银订购亏损被骗...   大浪淘金APP最隐蔽的套路,在于其完全封闭的内盘交易系统。表面上,它宣称与国际贵金属市场接轨;实...
一品好购APP上订购白银出现亏...   一品好购APP原名“一品订购”,运营方为上海宝智未来信息技术有限公司。近期不少投资者反映在该平台...
九州订购APP贵金属订购投资骗...   九州订购APP正通过抖.音、快手、今日头条等平台大量投放投资广告,用“5元起投”“充值返现”“0...
坚锅淘金APP交易软件并不正规...   当前,市面上大量所谓的“现货商城订购”交易软件,早已偏离了正常的实物商品买卖,演变为高杠杆、高手...
斗金订购APP贵金属期货交易骗...   斗金订购APP的投资者往往被铺天盖地的广告宣传所诱导——注册即送现金、充值返现券等看似诱人的福利...
警惕!云启购APP违规经营,披...   "5元起投、充值返现、稳赚不赔"——这些诱人的广告语背后,可能是一个精心设计的金融陷阱。  近期...
量子淘金APP贵金属投资不合规...   "4元起投""充值返券""月入过万"——这些极具诱惑力的广告语在短视频平台、社交软件上铺天盖地。...
鑫汇智投APP贵金属商品订购骗...   鑫汇智投APP非法期货投资骗局,受害者在投资过程中根本不懂交易,也不去研究和验证这个平台是否正规...
矅光智策APP平台违规经营非法...   矅光智策APP对外宣称是“商城订购”“现货交易”,但查询其经营范围,并未显示具备开展现货期货交易...
黄金珠宝怎么选?内侧刻字都代表... 潮新闻客户端 记者 马焱 通讯员 任倩影 9月8日下午,“云游杭州 乐购金秋”——“浙城·浙放心”活...
原创 冰... 最近全球国债市场正在上演魔幻一幕: 美债、日债、欧债遭遇猛烈抛售,收益率冲到几十年新高,美国财政部都...
日韩股市开盘表现分化 上证报中国证券网讯 9月9日,日韩股市开盘表现分化,韩国综合指数开盘上涨0.26%,报6972.87...