Maven介绍,安装,初始化与常用操作
目录
一、什么是Maven
Maven是一个项目管理工具,或者说自动化构建工具。可以实现项目的自动化构建,帮助开发人员做代码的编译、测试、打包、安装、部署等工作,并且可以管理项目中各种jar包的依赖。
二、下载
官网地址:http://maven.apache.org/,点击左侧的Download可以下载,Windows可以直接下载“Binary zip archive”的zip压缩包即可。
三、安装与环境变量的配置
- 确定java安装环境,即确认JAVA_HOME环境变量的存在。可以直接在命令提示符中输入
echo %JAVA_HOME%
根据输出结果确认JAVA_HOME的可用性。
2. 解压缩zip文件,并将其放于不带中文与空格的目录下。
3. 配置Maven环境变量。新建MAVEN_HOME,变量值为第2步的安装目录。
4. 在path变量中,加入%MAVEN_HOME%\bin。
5. 测试Maven的安装,在命令提示符中输入
mvn -v
出现版本信息则表示安装成功。
四、修改Maven本地仓库路径
默认本地仓库路径在“用户目录/.m2/repository”,(C:\Users\用户名.m2\repository)。
修改maven安装路径/conf/settings.xml配置文件指定本地仓库的位置即可。
步骤:
- 创建一个仓库目录。
- 为确保安全,备份原来的settings.xml文件。
- 打开配置文件,找到标签的位置,在其注释的下方插入
路径以 / 分割。<localRepository>刚创建的仓库位置</localRepository>
- 保存退出即可。
五、修改Maven中央仓库镜像(阿里镜像)
修改maven安装路径/conf/settings.xml配置文件,添加阿里中央仓库镜像。
<mirror> <!--上层标签为mirrors-->
<id>aliyunmaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
六、Maven约定的目录结构
projectName // 项目文件夹
\src
\main // 主程序目录
\java // 源代码
\resources
\test // 开发人员自己写的测试代码的目录
\java
\resources
pom.xml // maven的配置文件
七、常用命令
- mvn clean
- mvn compile
- mvn test-compile
- mvn test
- mvn package:打包,把项目中的class文件和配置文件都放到一个压缩文件(jar, war类型等)中。生成的包放置在target目录下,打包的文件包含的src/main目录中的所生成的class和配置文件,与test无关。
- mvn install。把打包文件安装到mave仓库。
- mvn deploy
- 常用 mvn clean package,先清理后打包。
八、结合IDEA使用Maven
使用idea使用自己电脑上的maven
File -> Settings。
九、一些常用设置及标签作用
1 依赖的scope属性
scope标签表示依赖范围,表示这个依赖在项目构建的那个阶段起作用。
scope的值有:
- compile(默认):表示参与项目的所有阶段,打包后的jar/war包中也会带有这个依赖包。
- test:表示仅在测试阶段使用此依赖,不会将其打包(比如junit的依赖)。
- provided:在打包时不会将其打包,其余情况此依赖都有效。(由于服务器可能会提供此依赖,如果再打包进去,会产生冲突,比如servlet或者jsp的依赖)。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope> <!--servlet是provided-->
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope> <!--junit是test-->
</dependency>
2 项目的properties标签
此标签是配置本项目的一些设置的。
<properties> <!--上层标签为project,且位于配置文件的前部-->
<maven.compiler.target>1.8</maven.compiler.target> <!--源码编译的jdk版本-->
<maven.compiler.source>1.8</maven.compiler.source> <!--运行代码的jdk版本-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><!--项目使用的编码-->
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><!--生成报告的编码-->
</properties>
3 自定义变量
自定义变量常用于依赖版本的统一管理,比如我们的项目会用到很多的spring的依赖,比如spring core,spring web mvc等,我们要保证他们的版本统一,挨个修改可能会不容易管理。
1)首先在properties标签下创建变量。
<properties>
<spring.version>5.2.6.RELEASE</spring.version>
</properties>
2)使用全局变量(${变量名})
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
这样,当我们想要整体换项目中spring相关的依赖的时候,就可以直接修改变量的值即可。
十、插件配置
使用pom文件中的plugin标签配置,例如配置编译插件版本。
<build> <!--上层标签为project标签-->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-conpiler-plugin<artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source><!--指定编译代码的jdk版本,默认1.7-->
<target>1.8</target><!--运行java程序使用的jdk版本,默认1.7-->
</configuration>
<plugin>
<plugins>
</build>
配置资源插件
Maven对资源文件的默认处理方式:
- 把sec/main/resources目录中的文件拷贝到target/classes目录中。
- 对与sec/main/java目录中的文件,只会处理.java文件(编译为class文件并拷贝到target/classes目录中),不对其他的文件处理。
这样我们在dao包中写的sql语句的xml,和数据库连接信息的properties文件就不会被处理。
我们可以在build中加入资源插件。
<build>
<resources>
<resource>
<directory>src/main/java</directory> <!--想要扫描的目录-->
<includes>
<!--以下包含要扫描.properties和.xml文件-->
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>