本篇内容主要讲解“maven自动化构建工具的安装和配置方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“maven自动化构建工具的安装和配置方法”吧!
一、Maven简介
1、Maven可以管理jar包文件,自动下载jar和他的文档,源代码。
2、Maven可以管理jar包之间的依赖、jar包的版本
3、Maven的构建:
(1)清理:把之前项目编译的东西删除掉。
(2)编译:把程序代码编译为执行代码,java-class文件
(3)测试:maven可执行测试程序代码,验证你的功能是都正确
(4)报告:生成测试结果的文件
(5)打包:把项目中所有class文件,配置文件等所有资源放到一个压缩文件中,java程序压缩文件通常是jar或war包
(6)安装:把打包的文件安装到本地仓库
(7).部署:把程序安装好可以执行
4、Maven核心概念:
(1)POM:pom.xml,项目对象模型,控制maven构建项目的过程,管理jar依赖
(2)约定的目录结构:maven项目的目录和文件的位置都是规定的
(3)坐标:唯一的字符串,用来表示资源
(4)依赖管理:管理项目中使用的jar文件
(5)仓库管理:资源存在的位置
(6)生命周期:maven构建项目的过程
(7)插件和目标:执行maven构建的时候用的工具
(8)继承与聚合:类似java语法
5、maven工具的安装和配置:
(1)官网下载:
https://maven.apache.org/download.cgi
(2)解压安装包:非中文目录
子目录bin:执行程序mv.cmd
conf:maven工具配置文件settings.xml
(3)配置环境变量:
在系统的环境变量中新增maven工具的安装目录,并在path中新增:
MAVEN_HOME -> D:\Program Files (x86)\apache-maven-3.8.1
path -> %MAVEN_HOME%\bin\
验证配置成功:cmd -> mvn -v
二、Maven核心概念
1、maven约定的目录结构(项目-Hello)
Hello/
---/src
------/main #主程序java代码和配置文件
----------/java #程序包和包中的java文件
----------/resource #java程序中使用的配置文件
------/test #放测试程序代码和文件的(可以没有)
----------/java #测试程序包和包中的java文件
----------/resource #测试java程序中使用的配置文件
---/pom.xml maven的核心文件(必有)
PS D:\javaProjects> tree Hello 卷 软件 的文件夹 PATH 列表 卷序列号为 00000073 AEF0:3DBD D:\JAVAPROJECTS\HELLO └─src ├─main │ ├─java │ └─resources └─test ├─java └─resources PS D:\javaProjects>
2、仓库:
(1)仓库概念:存在maven使用的jar和项目使用的jar
(2)仓库分类:本地仓库与远程仓库
(3)仓库的使用:仓库的使用不需人为参与,需要jar包时访问顺序:本地仓库->私服->镜像->中央仓库
3、POM:Maven的灵魂
(1)modelVersion:目前的版本4.0
(2)groupId:组织名称,一般为公司域名倒写(+项目名称)
(3)artifactId:项目名称
(4)version:项目版本号,通常为-SNAPSHOT
(5)packaging:项目打包类型:jar、war、rar、ear、pom,默认jar
(6)<dependencies><!- -依赖- -相当于import></dependencies>
(7)properties:定义一些配置属性,如项目编码方式等
(8)bulid:maven构建时一些配置信息,如编译插件啊的jdk版本
其中:groupId+artifactId+version为坐标
https://mvnrepository.com/ 搜索使用的中央仓库
4、Maven生命周、Maven常用命令、Maven插件:
(1)maven的生命周期即Maven构建项目的过程:清理、编译、测试、报告、打包、安装、部署的过程
(2)maven的命令:Maven可以使用命令,完成项目声明周期的执行
(3)maven的插件:maven命令的执行,通过相应的jar来完成
清理(会删除原来编译和测试的目录),即target目录,但是
三、Maven的使用
1、mvn compile:编译src/main目录下所有java文件
(1)编译时下载JAVA插件
(2)下载插件,存放在本机默认仓库:C:\Users\Mr.White\.m2\repository
(3)结果在项目根目录下生成target目录,maven编译的java程序,class文件。
D:\javaProjects\Hello>mvn compile [INFO] Scanning for projects... [INFO] [INFO] ------------------------< com.testbk:testjava >-------------------------[INFO] Building maven 0.0.1-SNAPSHOT [INFO] --------------------------------[ jar ]---------------------------------[INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ testjava ---[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent! [INFO] Copying 0 resource [INFO] [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ testjava ---[INFO] Nothing to compile - all classes are up to date [INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------[INFO] Total time: 0.750 s [INFO] Finished at: 2021-04-21T22:20:01+08:00[INFO] ------------------------------------------------------------------------
2、设置本机存放资源的目录位置:
修改maven配置文件,安装目录:/conf/setting.xml文件,新增
<localRepository>D:/maven-repository</localRepository>
3、添加mysql资源依赖
pom文件内添加:
<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.9</version> </dependency> </dependencies>
4、Maven常用命令:(必须在pom文件所在目录下执行)
(1)mvn clean:清理(删除原来编译和测试的目录,即target目录,但是已经install到仓库里的包不会删除)
(2)mvn compile:编译主程序(会在当前目录下生成一个target,里面存放编译主程序之后生成的字节码文件)main/java目录下程序
(3)mvn test-compile:只编译test程序 test/java目录下的程序
(4)mvn test:测试
clean到test的部署参考:Junit单元测试
(5)mvn package:打包主程序,会编译、测试并打包主程序(scr/main下所有java程序),放入target目录下
[INFO] Building jar: D:\javaProjects\Hello\target\testjava-0.0.1-SNAPSHOT.jar [INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------[INFO] Total time: 10.630 s [INFO] Finished at: 2021-04-25T22:17:33+08:00[INFO] ------------------------------------------------------------------------
(6)mvn install:安装主程序,会把本工程打包,并保存到本地仓库中。
[INFO] Installing D:\javaProjects\Hello\target\testjava-0.0.1-SNAPSHOT.jar to C:\Users\Mr.White\.m2\repository\com\testbk\testjava\0.0.1-SNAPSHOT\testjava-0.0.1-SNAPSHOT.jar [INFO] Installing D:\javaProjects\Hello\pom.xml to C:\Users\Mr.White\.m2\repository\com\testbk\testjava\0.0.1-SNAPSHOT\testjava-0.0.1-SNAPSHOT.pom [INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------[INFO] Total time: 9.078 s [INFO] Finished at: 2021-04-25T22:44:03+08:00[INFO] ------------------------------------------------------------------------
(7)mvn deploy:部署主程序,会把本地工程打包,按照坐标保存到本地库,并且还保存到私服仓库中。(使用较少)
5、插件配置:build :maven-compiler-plugin
<build> <plugins> <plugin> <!-- 指定maven编译的jdk版本,如果不指定,maven3默认用jdk 1.5 maven2默认用jdk1.3 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> <compilerArgs> <arg>-parameters</arg> </compilerArgs> </configuration> </plugin> </plugins> </build>
四、Maven在IDEA中的应用
1、idea中设置maven
idea中内置了maven,但一般不使用内置的,因为修改配置不方便;所以使用自己安装的maven,需覆盖idea中默认的设置,让idea指定maven安装位置等信息
idea配置入口:
(配置当前工程)File - > Settings - > Build,Execution,Deployment - > Build Tools -> Maven
(配置以后新建工程)File -> New Projects Settings -> Settings for New Projects -> Build,Execution,Deployment - > Build Tools -> Maven
Maven home directory:maven的安装目录
User settings file:mavne安装目录conf/setting.xml配置文件
Local respository:本机仓库的目录位置
Running -> JRE-1.8;VM Options:-DarchetypeCatalog=internal(提高maven创建效率,不再下载)
package com.testbk;public class HelloMaven {public int add(int n1,int n2){return n1+n2; }public static void main(String[] args) { HelloMaven hello = new HelloMaven();int res = hello.add(10,20); System.out.println("10+20="+res); } }
package com.testbk;import org.junit.Assert;import org.junit.Test;public class TestHelloMaven { @Testpublic void testAdd(){ System.out.println("========testAdd 测试add方法================="); HelloMaven hello = new HelloMaven();int res = hello.add(10,20);//判断结果是否正确Assert.assertEquals(30,res); } }
运行程序测试通过:
4、idea-maven工具窗口
使用工具窗口可完成:clean、compile、test、package、install等操作
五、依赖管理
1、依赖的范围:
使用scope表示:表示依赖使用的范围,即在maven构建的项目中的哪些阶段中起作用。
值包含compile、test、provided(提供者),默认采用compile(所有阶段)。如junit的依赖范围是test郑州男科医院哪家好http://www.ytsgnk.com/
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency>
2、举例使用:Mybatis-sprint/druid
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>2.0.4</version> </dependency>
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.22</version> </dependency>
六、Maven常用设置
1、属性设置:<properties>与</properties>内
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> :maven构建项目使用的编码方式,避免中文乱码
<maven.compiler.source>1.7</maven.compiler.source>:编译代码使用的jdk版本
<maven.compiler.target>1.7</maven.compiler.target>:运行程序使用的jdk版本郑州男科医院哪家好http://www.zztjnk.com/
2、全局变量:
自定义的属性,在<properties>中通过自定义标签声明变量(标签名就是变量名),在pom.xml文件中的其他位置,使用${标签名}使用变量的值
自定义全局变量一般是定义依赖的版本号,当你的项目中要使用多个相同的版本号,
先使用全局变量定义,在使用${变量名},如spring框架
<properties> <!--自定义变量,表示版本号--> <spring.version>5.3.6</spring.version> </properties>
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> </dependencies>
3.指定资源的插件
在<build></build>中指定资源的插件resources
(1)默认没有使用resources的时候,maven执行编译代码的时候,会把src/main/resources目录中的文件拷贝至target/classes目录中。
对于src/main/java目录下的非java文件不处理,不拷贝到target/classes目录中
(2)我们的程序有需要把一些文件放在src/main/java目录中,当执行java程序时,需要用到src/main/java目录中的文件,
需要告诉maven在mvn compile src/main/java目录下的程序时,需要把文件一同拷贝到target/classes目录中。
此时就需要在<build>中加入<resources>
到此,相信大家对“maven自动化构建工具的安装和配置方法”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。