Maven介绍,安装,初始化与常用操作

一、什么是Maven

Maven是一个项目管理工具,或者说自动化构建工具。可以实现项目的自动化构建,帮助开发人员做代码的编译、测试、打包、安装、部署等工作,并且可以管理项目中各种jar包的依赖。

二、下载

官网地址:http://maven.apache.org/,点击左侧的Download可以下载,Windows可以直接下载“Binary zip archive”的zip压缩包即可。

三、安装与环境变量的配置

  1. 确定java安装环境,即确认JAVA_HOME环境变量的存在。可以直接在命令提示符中输入
echo %JAVA_HOME%

根据输出结果确认JAVA_HOME的可用性。
2. 解压缩zip文件,并将其放于不带中文与空格的目录下。
3. 配置Maven环境变量。新建MAVEN_HOME,变量值为第2步的安装目录。
MEVEN_HOME
4. 在path变量中,加入%MAVEN_HOME%\bin。
5. 测试Maven的安装,在命令提示符中输入

mvn -v

出现版本信息则表示安装成功。

四、修改Maven本地仓库路径

默认本地仓库路径在“用户目录/.m2/repository”,(C:\Users\用户名.m2\repository)。
修改maven安装路径/conf/settings.xml配置文件指定本地仓库的位置即可。
步骤:

  1. 创建一个仓库目录。
  2. 为确保安全,备份原来的settings.xml文件。
  3. 打开配置文件,找到标签的位置,在其注释的下方插入
    <localRepository>刚创建的仓库位置</localRepository>
    
    路径以 / 分割。
  4. 保存退出即可。

五、修改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的配置文件

七、常用命令

  1. mvn clean
  2. mvn compile
  3. mvn test-compile
  4. mvn test
  5. mvn package:打包,把项目中的class文件和配置文件都放到一个压缩文件(jar, war类型等)中。生成的包放置在target目录下,打包的文件包含的src/main目录中的所生成的class和配置文件,与test无关。
  6. mvn install。把打包文件安装到mave仓库。
  7. mvn deploy
  8. 常用 mvn clean package,先清理后打包。

八、结合IDEA使用Maven

使用idea使用自己电脑上的maven
File -> Settings。
IDEA集成maven

九、一些常用设置及标签作用

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对资源文件的默认处理方式:

  1. 把sec/main/resources目录中的文件拷贝到target/classes目录中。
  2. 对与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>
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐