Maven的配置及使用

一、什么是maven?

Apache Maven 是一种用于软件项目管理工具,基于 Project Object Model(POM),用来管理项目的构建,汇报及文档生成等功能。

我们知道了maven是一种项目管理工具之后,最主要的还是使用它,那么通过maven创建项目的详细步骤又是什么呢?我在另一篇博客中已经详细写出: IntelliJ IDEA中创建一个Maven项目以及对maven的设置.

maven的作用:

maven 的目标是完成项目构建解决的一切繁琐事宜。它的主要作用有:

  • 提供一个标准的项目工程目录
  • 提供项目描述
  • 提供强大的版本管理工具
  • 可以分阶段的进行构建过程
  • 提供了丰富的插件库使用

二、maven项目的基本结构

创建好maven项目之后,我们来看看maven项目的基本结构,通过上面的博客,我们创建好的maven项目结构如下图所示:
在这里插入图片描述

  • src\main\java: Java代码的根路径,这个文件夹下就可以写我们的servlet代码
  • src\main\resources: 一般是用于同时部署的一些资源文件,例如图片、音频、视频等
  • src\test\java: 一般用来放一些测试代码
  • pom.xml: 是 maven 最重要的文件,是 maven 的配置描述文件,用来配置一些项目的描述信息或者是项目中所需要的依赖文件。
  • target: maven项目默认的编译路径
    • clasess: src/main/javaz中的类编译为class文件;src/main/resources复制过来;
    • test-classess: src/test/java中的类编译为class文件:src/test/resources复制过来;

更加细分见下图所示:
在这里插入图片描述

三、maven的配置文件

1、全局配置文件(settings.xml)

settings.xml:是指定本地仓库,指定远程仓库

1)settings.xml文件位置

settings.xml文件会在两个目录下存在:

1、Maven安装目录(全局):%MAVEN_HOME%\conf\settings.xml;
也就是我们在哪安装的,安装的目录的conf文件夹下就会有一个settings.xml文件;比如我自己就在D盘的某个路径下,如下图所示:
在这里插入图片描述

2、用户安装目录(系统中指定的用户目录,一般在C盘下):${user.home}.m2\settings.xml
如下图实我自己电脑上系统的用户目录:
在这里插入图片描述
注意:

如果两个目录都有settings.xml文件,那么系统分配的用户目录(也就是C盘中的)占主导地位

但是我们一般建议在项目中使用自己指定的本地目录,因为:

  • 如果指定了settings.xml的位置,本地仓库的位置就随着它一块变(比如我是用的是我自己指定的D盘中的settings.xml,那么maven仓库的位置也就跟着变为D盘中的仓库,而不会是C盘的)。
  • 并且我们在项目中使用的一些依赖都会下载到maven仓库,如果放在C盘会占据C盘的空间(C盘一般不建议放一些用户自己的东西)
2)指定本地仓库

打开settings.xml,如下图所示,在标签中输入自己要设置的本地仓库的路径即可,下图是我自己设置的本地仓库的路径。

在这里插入图片描述

3)配置阿里云镜像:

通常,默认的仓库因为网络原因,下载都比较慢,我们可以把自己的仓库更新为阿里的版本。

找到标签,在其中配置阿里云镜像,如下图所示;

在这里插入图片描述

因为使用此Maven的配置作为版本控制,都会从阿里云的仓库中下载代码,速度特别快。

2、项目配置文件(pom.xml)

pom.xml 文件后缀名表示这个文件是用 XML 格式进行组织。简单的去理解, XML是一种类似我们学习过的 HTML 格式的文件,全程 Extensible MarkupLanguage,Java 语言中经常会用 XML 用来做配置管理。

maven项目创建成功后就会生成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/xsd/maven-4.0.0.xsd">
  <!--上面的内容完全不用管,使用自动生成的就行,是用于一些校验规则指定的-->
  
  <!--这里指定的是POM的版本,也不需要动-->
  <modelVersion>4.0.0</modelVersion>

  <!--这里是项目的描述信息,是新建项目时我们填入的内容-->
  <groupId>com.wang</groupId>
  <artifactId>java_chatroom</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>
  
  <!--一般把我们需要的内容附加在这下面-->
  
  <!--这个标签中指定所有的依赖项-->
 <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>
  
<!--一般我们把构建相关的配置放这里-->
   <build>
    <finalName>java_chatroom</finalName>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
    
    <!--使用各种插件-->
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        
      </plugins>
    </pluginManagement>
  </build>
  
</project>
1)依赖

下面三个字段相当于确定一个产品,使用第三方依赖也是依赖下面三个字段

<groupId>bit</groupId>//组织名,规范是组织名伪代码所在包的根路径
<artifactId>com</artifactId>//产品名,也就是项目名
<version>1.0-SNAPSHOT</version>//版本

我们所添加的任意一款依赖,都是由这三部分组成,如下图的MySQL:

在这里插入图片描述

2)插件

maven 同时还提供了开放的插件开发功能,可以提供给大牛们进行构建过程中方便功能的开发,maven最基本的编译插件如下图所示:

在这里插入图片描述

四、maven的生命周期

maven 把各个阶段都做了各自的映射。主要有以下阶段: clean 清理阶段、 compile 编译阶段、test 测试阶段、 package打包阶段、 deploy 部署阶段

我们在idea中最右边一列点击Maven Projects---->Lifecycle,就可以看到整个maven项目的所有生命周期
在这里插入图片描述

  • clean:将target目录删除掉

  • compile: 编译命令---->编译src/main/java和 src/main/resourcrs

  • package:在target里打jar包、war包(web项目)

  • install:将package打的jar包安装到自己配置的本地仓库中

  • deploy:发布产品,将打包好的产品发布到公司的仓库中(一般是公司配置的maven私服/仓库),其他公司的项目组就可以使用

这些命令都是有优先级的,由上向下依次优先级增大,也就意味着执行下面的命令必须先执行上面的命令。
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值