Maven
什么是Maven——项目构建工具
1)maven可以管理jar文件
2)自动下载jar和他的文档,源代码
3)管理jar直接的依赖, a.jar需要b.jar , maven会自动下载b.jar
4)管理你需要的jar版本
5)帮你编译程序,把java编译为class
6)帮你测试你的代码是否正确。
7)帮你打包文件,形成jar文件,或者war文件
8)帮你部署项目
Maven的安装
下载maven,apache-maven-3.3.9.zip
解压文件,不需安装,
配置环境变量: 用户变量->Path->编辑 %MAVEN_HOME%\bin\
系统变量->新建->MAVEN_HOME 赋值D:\files\maven\download\apache-maven-3.3.9
检验是否成功:
C:\Users\DELL>mvn -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: D:\files\maven\download\apache-maven-3.3.9\bin\..
Java version: 1.8.0_301, vendor: Oracle Corporation
Java home: D:\ruanjian\java\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "dos"
Maven的核心概念
目录结构:
每一个maven项目在磁盘中都是一个文件夹(项目-Hello)
Hello/
---/src
------/main #放你主程序java代码和配置文件
----------/java #你的程序包和包中的java文件
----------/resources #你的java程序中要使用的配置文件
------/test #放测试程序代码和文件的(可以没有)
----------/java #测试程序包和包中的java文件
----------/resources #测试java程序中要使用的配置文件
---/pom.xml #maven的核心文件(maven项目必须有)
Maven仓库:存储maven所要使用的依赖文件
在命令行第一次编译 mvn compile时,会自动联网下载maven所用的依赖文件
下载的默认路径会在C:\Users\DELL.m2\repository下,若需要修改位置,可将repository文件夹剪切到任意路径,然后修改apache-maven-3.3.9\conf下setting.xml文件中有一行< local Repository>开头的隐藏在注释里的语句,复制出来修改为当前路径
< localRepository>D:/files/maven/download/repository</ localRepository>
POM,Project Object Model : pom.xml 项目对象模型,
坐标:唯一值, 在互联网中唯一标识一个项目的
<groupId>公司域名的倒写</groupId>
<artifactId>自定义项目名称</artifactId>
<version>自定版本号</version>
dependencies 和dependency ,相当于是 java代码中import
你的项目中要使用的各种资源说明, 比如我的项目要使用mysql驱动
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.9</version>
</dependency>
</dependencies>
properties:设置属性
Maven 的常用编译命令
mvn clean 清理(会删除原来编译和测试的目录,即 target 目录,但是已经 install 到仓库里的包不会删除)
mvn compile 编译主程序(会在当前目录下生成一个 target,里边存放编译主程序之后生成的字节码文件)
mvn test-compile
编译测试程序(会在当前目录下生成一个 target,里边存放编译测试程序之后生成的字节码文件)
mvn test 测试(会生成一个目录surefire-reports,保存测试结果)
mvn package
打包主程序(会编译、编译测试、测试、并且按照 pom.xml 配置把主程序打包生成 jar 包或者 war 包)
mvn install 安装主程序(会把本工程打包,并且按照本工程的坐标保存到本地仓库中)
Maven中的依赖范围
依赖范围是针对要导入的依赖所说的,compile会贯穿全期,test只会在测试代码中使用,provided则是编译和测试的时候用,当你打包或部署时,不会把provided的包括进去。
Maven连接idea
配置下载的maven
idea中内置了maven ,一般不使用内置的, 因为用内置修改maven的设置不方便。
使用自己安装的maven, 需要覆盖idea中的默认的设置。让idea指定maven安装位置等信息
配置的入口
1:配置当前工程的设置, file--settings ---Build, Excution,Deployment--Build Tools
--Maven
Maven Home directory: maven的安装目录
User Settings File : 就是maven安装目录conf/setting.xml配置文件
Local Repository : 本机仓库的目录位置
--Build Tools--Maven--Runner
VM Options : archetypeCatalog=internal
JRE: 你项目的jdk
archetypeCatalog=internal , maven项目创建时,会联网下载模版文件,
比较大, 使用-DarchetypeCatalog=internal,不用下载, 创建maven项目速度快。
2:配置以后新建工程的设置, file--new project setup--Settings for New Projects
使用maven创建java项目
创建新的项目,可以通过预设模块来快速生成maven项目
设置项目名称
设置项目的唯一标识
左侧工具栏提供了maven的插件
Maven中的常用操作
1.maven的属性设置
< properties > 设置maven的常用属性
< properties >
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
< /properties>
2.maven的全局变量
在 < properties > 中可以定义全局自变量,然后在后面通过&{变量名}的方式使用,用来统一管理一些依赖相同的版本号之类的
< properties >
<java.version> 1.8</java.version>
< /properties>
< dependcy >
<groupId>java</groupId>
<artifactId>java</artifactId>
<version>java.version</version>
</dependcy>
3.资源插件
<build>
<resources>
<resource>
<directory>src/main/java</directory><!--所在的目录-->
<includes><!--包括目录下的.properties,.xml 文件都会扫描到-->
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<!--filtering 选项 false 不启用过滤器, *.property 已经起到过滤的作用了 -->
<filtering>false</filtering>
</resource>
</resources>
</build>
作用: mybatis课程中会用到这个作用
- 默认没有使用resources的时候, maven执行编译代码时, 会把src/main/resource目录中的文件拷贝到target/classes目录中。