1. 概念入门
概念: maven,意为专家,是Apache下的一个纯java开发的免费开源,跨平台的项目管理工具:
maven可以对项目进行一键构建,每个命令都会以此执行之前的命令:clean:清理,清理target文件夹下的class信息。compile:编译,将java文件编译成class文件。test:测试,测试代码正确性。package:打包,java项目打jar包,web项目打war包install:部署,项目自动部署到maven仓库中
maven擅于集中管理项目依赖,在pom.xml中以坐标的方式引入中央仓库的依赖,自动下载,安全便捷。
2. 环境搭建
- 软件下载:
- 进入到 maven下载位置
- 点击
Previous Releases中的archives选择过往版本,如3.6.0。 - 点击
binaries-apache-maven-3.6.0-bin.zip进行下载。
- 目录结构:
bin: maven相关的可执行程序,如mvn.bat和mvnDebug.bat等。boot: maven运行需要的类加载器。conf: maven运行需要的配置文件,如settings.xml等。lib: maven运行需要的依赖jar包。
- 环境搭建:
- 使用maven的前提是JDK1.7+环境,且必须正确配置了
JAVA_HOME。 - 新建环境变量
MAVEN_HOME为安装包根路径。 - 添加环境变量
path为%MAVEN_HOME%\bin。 - 通过
mvn -v或者mvn -version命令检查maven是否安装成功。
- 使用maven的前提是JDK1.7+环境,且必须正确配置了
3. 仓库配置
概念: 假设本地项目需要 a.jar,优先在本地仓库寻找,若有直接用,若无再去远程仓库寻找(假设已搭建),若有下载到本地仓库并使用,若无再去中央仓库寻找,若有下载到远程仓库,再下载到本地仓库使用,若无考虑 a.jar 是否收费,或为自行开发的jar资源:
- 仓库分类:
- 本地仓库:本地某个文件夹,需自行配置。
- 远程仓库:一般用于多地团队开发,可以内网配置或外网配置。
- 中央仓库:maven团队维护的仓库,服务于外网,地址为
http://repo1.maven.org/maven2。
- 配置本地仓库:默认在
C:\Users\Administrator\.m2\repository:- 新建
D:\coder\java\maven\repos目录,位置和取名随意。 - 打开
conf/settings.xml,在<settings>中配置本地仓库位置。 <localRepository>D:\coder\java\maven\repos</localRepository>。
- 新建
- 配置阿里云私服镜像:中央仓库下载速度过慢,可以配置阿里云等其他国内下载镜像:
- 打开
conf/settings.xml,在<mirrors>中配置阿里云镜像内容。
- 打开
- 下载基本插件:CMD进入命令行:
mvn help:system:加载基本插件,提示BUILD SUCCESS表示完成。
配置: settings.xml
<!-- 阿里云仓库镜像 -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
4. 整合IDEA
流程:
File-Settings-Build, Execution, Deployment-Build Tools-Maven。- 在
Maven home directory栏选择maven的根目录。 - 勾选
User settings file后的Override,然后选择maven的settings.xml文件。 - 勾选
Local repository后的Override,然后选择maven的正确仓库位置。 - 点击
OK确认修改,重启IDEA,否则不生效。
5. maven-jar项目
概念: 创建 com.joezhou.maven3-jar 项目:
- 创建流程:
File-New Project-Maven-Next。- 填写
GroupId横坐标,项目包名。 - 填写
ArtifactId纵坐标,项目名。 - 填写
Project name本地项目名,默认纵坐标名。 - 填写
Project location项目存放位置,注意IDEA不生成项目名目录。 - 点击
Finish,若提示文件目录不存在,询问是否创建,选择OK即可。 - 新项目右下角提示,选择
Enable Auto-Import自动导入maven配置。
- 项目结构:
src/main/java:源代码文件存放位置。src/main/resources:资源文件,属性文件存放位置。src/test/java:单元测试文件存放位置。pom.xml:maven的核心配置文件。
pom.xml文件标签解析:<project>:配置文件的根标签。<modelVersion>:模型版本。<groupId>:项目的横坐标。<artifactId>:项目的纵坐标。<version>:项目的版本,SNAPSHOT是快照版。
- 项目开发:
- 在
pom.xml中配置jdk的编译版本,默认JDK5。 - 在
src/main/java中开发HelloWorld.java。
- 在
在maven窗口可以快速测试maven命令效果。
配置: 配置jdk的编译版本,默认JDK5。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
源码: src/main/java/HelloWorld.java
6. maven-war项目
概念: 创建 com.joezhou.maven3-war 项目:
- 创建流程:
File-New Project-Maven- 勾选Create from archetype。- 选择
org.apache.maven.archetypes:maven-artchetype-webapp,点击Next。 - 填写
GroupId横坐标,一般是公司的域名倒置,相当于包名。 - 填写
ArtifactId纵坐标,一般是项目名。 - 检查maven信息,包括根目录,
settings.xml和仓库的位置。 - 填写
Project name项目名,默认自动填写纵坐标名称。 - 填写
Project location项目存放位置,注意IDEA不生成项目名目录。 - 点击
Finish,若提示文件目录不存在,询问是否创建,选择OK即可。 - 新项目右下角提示,选择
Enable Auto-Import自动导入maven配置。
- 项目结构:
src/main/java:源代码文件存放位置,需手动添加。src/main/resources:资源文件,属性文件存放位置,需手动添加。src/main/webapp:存放发布资源的。src/main/webapp/WEB-INF:存放web.xml配置文件。src/test/java:单元测试文件存放位置。pom.xml:maven的核心配置文件。
pom.xml文件标签解析,基础标签见上一章节:<packaging>:项目类型,可选jar或者war。<name>:项目的名称,作用在maven窗口,可删除。<url>:项目的访问URL,可删除。<properties>:项目配置根标签,其中可以自定义配置。<project.build.sourceEncoding>:项目构建编码。<maven.compiler.source>:项目编译的源码版本,修改为1.8。<maven.compiler.target>:项目编译的字节码版本,修改为1.8。<dependencies>:项目依赖集合设置的区域,子标签下一章节讲解。
- 对项目进行部署,启动Tomcat,然后访问首页。
7. maven依赖
概念:
- 引入仓库jar包:maven采用坐标的方式引入依赖:
<dependencies>中可以设置多个<dependency>依赖标签。<groupId>:指定横坐标,依赖所在包名。<artifactId>:指定纵坐标,依赖名。<version>:指定依赖版本号。
- 调整jar包范围:
<scope>用来设置依赖的生效范围:test:只在测试环境有效,如junit,spring-test等。runtime:只在运行时有效,如数据库驱动包。provided:对tomcat中已提供的jar包进行设置,避免冲突。
- 提取jar包版本:使用CMD命令将jar文件导入本地仓库并生成maven坐标:
mvn install:install-file -DgroupId=com.joezhou -DartifactId=ojdbc14 -Dversion=1.0 -Dpackaging=jar -Dfile=D:\ojdbc14.jar