欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Maven的配置及使用

程序员文章站 2024-03-24 17:33:22
...

一、什么是maven?

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

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

三、maven的配置文件

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

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

1)settings.xml文件位置

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

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

2、用户安装目录(系统中指定的用户目录,一般在C盘下):${user.home}.m2\settings.xml
如下图实我自己电脑上系统的用户目录:
Maven的配置及使用
注意:

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

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

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

2)指定本地仓库

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

Maven的配置及使用

3)配置阿里云镜像:

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

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

Maven的配置及使用

因为使用此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:

Maven的配置及使用

2)插件

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

Maven的配置及使用

四、maven的生命周期

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

我们在idea中最右边一列点击Maven Projects---->Lifecycle,就可以看到整个maven项目的所有生命周期
Maven的配置及使用

  • clean:将target目录删除掉

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

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

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

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

这些命令都是有优先级的,由上向下依次优先级增大,也就意味着执行下面的命令必须先执行上面的命令。
Maven的配置及使用

相关标签: JAVA Web