Maven 3.5.4 安装及基础使用
由于私底下搭建测试环境玩,需要用到maven,所以自己边搭建边记录笔记。这篇笔记写于2017/12/17,当时是用word写的。怕时间久了找不到,今天准备把它重新整理下写到博客上。
1、Maven介绍及环境搭建
maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。
由于用了好几年的电脑一直没换,所以用的电脑系统是windows7 x64位的系统。
1.1、下载地址
maven下载链接,下载好zip文件后解压缩到D盘:D:\apache-maven-3.5.4。
1.2、apache-maven-3.5.4 文件目录简介及修改setting.xml
bin: bin目录包含mvn的运行脚本, m2.conf是一个配置文件;
boot: boot目录包含一个类加载器的框架,mvn使用它来加载自己的类库;
conf: conf是配置文件目录,settting.xml是一个需要经常用到的配置文件;
lib: lib目录存放mvn所使用或者依赖的第三方jar包。
默认的setting.xml修改为setting.bak.xml,创建一个新的setting.xml,并写入基本配置:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!--本地仓库:即本地用于存放jar包的位置-->
<localRepository>D:/repository</localRepository>
<!--远程仓库:如果本地仓库找不到我们所需要的构件(jar包),
则会去maven默认的远程仓裤(全球中央仓库)下载构件到本地。
远程仓库地址:https://repo.maven.apache.org/maven2
由于远程仓库下载jar包很慢,所以建议使用阿里云的镜像仓库。
-->
<mirrors>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
</mirrors>
<profiles>
<!--设置maven构建项目的的环境,当前为jdk-10.0.2
尽量还是选择和本地版本一样的jdk来构建项目,可以避免兼容性问题。
注意:maven 3.5.4版本需要jdk1.7版本以上才能支持。
-->
<profile>
<id>jdk-10</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>10</jdk>
</activation>
<properties>
<maven.compiler.source>10</maven.compiler.source>
<maven.compiler.target>10</maven.compiler.target>
<maven.compiler.compilerVersion>9</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
</settings>
1.3、配置环境变量
- 添加系统环境变量:变量名:M2_HOME,值:D:\apache-maven-3.5.4,该值就是maven所在的路径。
- 然后在Path中添加:;%M2_HOME%\bin,注意分号是英文符号。
- 验证是否配置成功:windows+R 输入cmd 打开DOS窗口—> 输入:mvn -v命令,会显示maven的版本即配置成功。如下图所示,显示了mvn的版本号,java的版本号,以及系统的一些信息。
2、第一个Maven案例
步骤1已经将maven环境配置完成,接下来将通过一个小案例简单的来认识下maven 常用的命令、项目创建以及常用命令的使用。
2.1、Maven常用的命令
- mvn -v:查看maven版本、jdk版本和电脑系统信息。
- mvn compile:编译,编译成功后生成target文件,且在classes文件中按包名生成目录文件存放各包中类的字节码文件。
首次编译成功后生成的target文件的内容:
- mvn test:测试,测试成功后项目src文件目录中所有的类都会被编译,并且生成测试报告。首次执行测试命令,且未编译,也会生成一个target文件。
未编译首次测试生成的target文件的内容:
从生成的文件目录和DOS窗口日志来看,运行测试命令的过程中,先运行了编译命令。 - mvn package:打包,在target目录中可以找到打包成功的jar包。
首次打包成功后target文件的内容:
打包之前运行了编译、测试的命令。 - mvn clean:删除项目中的target文件
- mvn install:上传项目中jar包到本地仓库中,即D:/repository目录中,以英文的点(.)分割groupId来创建目录文件存放jar包,包名为:artifactId-version.jar。上传的命令包括了编译、测试,打包命令。
2.2、创建maven01-model项目
任何maven项目的结构都是一样的,都需要遵循maven的规定。maven01-model项目所在路径:E:\code\maven01-model
2.2.1、使用命令创建maven01-model项目的骨架
使用archetype插件创建maven项目的骨架,第一次使用命令会安装插件和很多依赖的jar包。
1、按步骤创建maven项目的骨架
打开DOS窗口,切换到E:\code目录中输入命令:mvn archetype:generate,按照步骤创建项目骨架。
图片中DOS窗口中红色方框框起来的地方是需要输入的内容。
2、一次性创建maven项目的骨架
打开DOS窗口,切换到E:\code目录中输入命令:
mvn archetype:generate -DgroupId=组织名, 公司网址的反写+项目名
-DartifactId=项目名-模块名
-Dversion=版本
-Dpackage=包名2.2.2、maven01-model项目的目录结构及项目中的类
maven01-model的项目目录结构(包含src和pom.xml文件):
src
-main
-java
-package:cn.cjw.maven01.model
-class:HelloWorld.java
-test
-java
-package:cn.cjw.maven01.model
-class:HelloWorldTest.java
pom.xml
HelloWorld.java的代码:
package cn.cjw.maven01.model;
public class HelloWorld{
public String sayHello(){
return "Hello World!";
}
HelloWorldTest.java的代码:
package cn.cjw.maven01.model;
import org.junit.*;
import org.junit.Assert.*;
public class HelloWorldTest{
@Test
public void testSayHello(){
Assert.assertEquals("Hello World!", new HelloWorld().sayHello());
}
pom.xml文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<!-- 指定当前pom的版本-->
<modelVersion>4.0.0</modelVersion>
<!--定义项目的坐标-->
<groupId>cn.cjw.maven01</groupId>
<artifactId>maven01-model</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<!--文件拷贝时的编码-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 编译时的编码 -->
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties>
<!--加入项目依赖的jar包-->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
</dependencies>
</project>
注意:例子中所使用的类不是archetype插件生成的,而是自己以前手动创建的。自动生成的类名为App.java.
2.4、DOS窗口中运行Maven命令
2.4.1、打开DOS窗口
windows + R —> 输入cmd打开DOS窗口 —> 切换到E盘进入E:\code\maven01-model项目目录中。
2.4.2、输入命令
输入mvn compile 编译命令,显示BUILD SUCCESS,则编译成功。如果是第一次编译,maven会下载大量插件和依赖的jar包。编译成功后在E:\code\maven01-model目录中会有个target文件生成,只有在mian\java目录下面包中的类才会被编译成字节码文件xxx.class。
编译成功后目录生成了一个target文件:
其余命令的运行基本和编译命令类似,只是target文件内容和DOS日志稍有不同,在2.2步骤中已经提及过。