Maven 是专门用于构建和管理Java相关项目的工具。
1)用途
使用Maven管理的Java 项目都有着相同的项目结构 统一维护jar包,所有的jar包都放在"仓库“ 里,实现了共享
2)
3)
4)属性说明
maven.pom.relativePath:引用这个parent项目的pom的路径。默认值:../pom.xml,会从本地路径中获取parent的pom。
scope:它主要管理依赖的部署。Maven的生命周期存在编译、测试、运行这些过程,使得依赖在哪个周期内生效。主要过程:
compile:默认的scope,运行期有效,需要打入包中 provided:表明该依赖已经提供,故只在未提供时才被使用。编译期有效,运行期不需要提供,不会打入包中。 runtime:编译不需要,在运行期有效,需要导入包中。(接口与实现分离) test:测试需要,不会打入包中 system:非本地仓库引入、存在系统的某个路径下的jar。(一般不使用)
5)元素说明
parent:继承,和 java 中的继承相当,作用就是复用,以抽取统一的配置信息和依赖版本控制。
modules:就是模块,用来管理同个项目中的各个模块。如果项目的模块在 pom.xml 没进行划分,那么此元素是用不到的;稍微复杂一点的项目都是要用到的,通过父项目聚合其他模块,一次构建全部模块。否则就要一个一个的构建。
properties:该元素可以自定义一个或多个Maven属性,然后在POM的其他地方使用${属性名}的方式引用该属性。,这种做法的最大意义在于消除重复和统一管理。maven 总共有 6 类属性,内置属性、POM属性、自定义属性、Settings属性、java系统属性和环境变量属性
1)下载地址
Maven – Download Apache Maven
2)配置环境变量
3)检验版本
mvn -v
4)仓库默认位置
${user.home}/.m2/repository。
5)默认下载路径
maven 会默认从maven官方提供的服务器下载jar包。
6)使用阿里云下载路径
打开settings.xml 修改在mirrors下新加一个阿里云的镜像地址:
7) 修改仓库位置
修改为:
8) 使用现成的仓库
1)切换到项目目录
cd D:\ideaworkspace\how2j\maven
2)创建maven项目
mvn archetype:generate -DgroupId=lizc.maven -DartifactId=j2se -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false archetype:generate 表示创建个项目 -DgroupId 项目包名: com.how2java -DartifactId 项目名称: j2se -DarchetypeArtifactId 项目类型: maven-archetype-quickstart -DinteractiveMode:false 表示前面参数都给了,就不用一个一个地输入了 运行成功会看到绿色的BUILD SUCCESS
3)运行package命令
cd j2se mvn package
经过编译,测试,打包,最后生成了一个j2se-1.0-SNAPSHOT.jar包
4)执行Jar
java -cp target/j2se-1.0-SNAPSHOT.jar lizc.maven.App App.java输出了一个Hello World!
1)创建命令
cmd切换目录 mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=lizc.maven -DartifactId=j2ee -DinteractiveMode=false
1)install本地命令
mvn install:install-file -Dfile=D:\download\google\docker-maven-plugin-1.0.0.jar -DgroupId=com.spotify -DartifactId=docker-maven-plugin -Dversion=1.0.0 -Dpackaging=jar
mvn install:install-file -Dfile=D:\download\google\elasticsearch-7.4.0.jar -DgroupId=org.elasticsearch -DartifactId=elasticsearch -Dversion=7.4.0 -Dpackaging=jar