maven的简介

maven是一个专门为java项目打造的项目管理和构建工具

  • 提供了一套标准的项目结构
  • 提供了一套标准的构建流程(编译,测试,打包,发布......)
  • 提供了一套依赖管理机制

maven的项目结构

  1. 普通的java项目

    image-20210620184247807

    pom.xmlmaven项目配置文件

    src/main/java:存放java源码

    src/main/resources:存放资源文件的目录

    src/test/java:存放测试源码的目录

    src/test/resources:存放测试资源的目录

    target:存放所有编译、打包生成的文件

修改默认配置

修改默认本地仓库

找到localRepository标签,复制该行,填写本地仓库路径,如图所示。

image-20210621094327585

修改默认远程仓库

mirrors标签中添加阿里的maven仓库镜像

<!--阿里云公共仓库-->
<mirror>
  <id>aliyunmaven</id>
  <mirrorOf>*</mirrorOf>
  <name>aliyun maven</name>
  <url>https://maven.aliyun.com/repository/public</url>
</mirror>

pom.xml文件

  1. modelVersionmaven模板的版本,对于maven2maven3来说,它只是有4.0.0

  2. groupId:组织id,一般是公司域名的倒写。

    • 域名倒着写:com.baidu
    • 域名倒着写+项目名:com.baidu.appolo
  3. artifactId:项目名称,也可以是项目模块名称,对应groupId中的子项目。

  4. version:项目的版本号。如果项目还在开发中,是不稳定版本,通常在版本后带-SNAPSHOTversion使用三位数字标识,例如:1.0.0

    注意:groupId+artifactId+version称为坐标。唯一值,在互联网中唯一标识一个项目。

    <groupId>公司域名的倒写</groupId>
    <artifactId>自定义项目名称</artifactId>
    <version>自定义版本号</version>
    
  5. packaging:打包后压缩文件的扩展名,默认是jar,web应用是war。

  6. 依赖

    <dependencies>
    	<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.25</version>
        </dependency>
    </dependencies>
    
  7. properties:设置属性

  8. build:maven在进行项目的构建时,配置信息,例如指定编译java代码使用的jdk的版本

maven的生命周期

maven常用命令

  1. mvn clean
  2. mvn compile
  3. mvn test-compile
  4. mvn test
  5. mvn package
  6. mvn install
  7. mvn deploy

在idea中配置maven

image-20210621172809233

image-20210621173129720

以上的操作是配置当前项目的maven,要想对新的项目也有效,就需要配置File中的Other Settings,如图所示。

image-20210621173406639

创建maven项目

创建Java项目

image-20210621174114142

点击"Next"。

image-20210621174835094

填写坐标,点击"Next"。

然后更改maven配置,使用自己安装的maven。

image-20210621175201740

最后点击"Finish"。

在创建好的maven项目中创建两个文件夹,有时候会自动创建,有时候不会自动创建,需要自己手动创建。在main目录下创建resources目录,并且右击resources目录,选择Mark Directory as中的Resources Root,如图1。在test目录下创建resources目录,并且右击resources目录,选择Mark Directory as中的Test Resources Root,如图2。

image-20210623163750477

图1

image-20210623164041157

图2

设置项目编译命令

image-20210623164226207

image-20210623164315009

image-20210623164536757

项目的打包

image-20210623164721248

创建Web项目

  1. 选择maven模板maven-archetype-webapp

    image-20210623165013961

    其它的都选Next,最后选Finish即可。

    创建好Web项目后,修改一下pom.xml配置文件,把默认的jdk1.7改为1.8,把junit4.11改为junit4.12,将pluginManagement标签中删除。只保留如下图所示的内容。

    image-20210623165724969

    plugins标签中写入如下内容

          <!-- jetty 插件 -->
          <plugin>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-maven-plugin</artifactId>
            <version>9.4.15.v20190215</version>
            <configuration>
              <httpConnector>
                <port>9090</port> <!-- 这里指定 jetty 服务的端口号 -->
              </httpConnector>
              <webAppConfig>
                <contextPath>/maven02</contextPath> <!-- 这里指定在浏览器访问时,当前Web应用的根路径 -->
              </webAppConfig>
            </configuration>
    	</plugin>
    

    plugins标签中再写入tomcat插件信息

    	  <!-- Tomcat 插件 -->
          <plugin>
              <groupId>org.apache.tomcat.maven</groupId>
              <artifactId>tomcat7-maven-plugin</artifactId>
              <version>2.1</version>
            <configuration>
              <port>8081</port> <!--启动端口默认:8080 -->
              <path>/test</path> <!--项目的站点名,即对外访问路径-->
              <uriEncoding>UTF-8</uriEncoding> <!--字符集编码默认:ISO-8859-1 -->
              <server>tomcat7</server> <!--服务器名称 -->
            </configuration>
          </plugin>
    

    先来配置maven启动jetty

    然后就可以点击右上角的运行按钮了,如图所示。

    image-20210623201915074

    当你看到这些信息说明成功运行jetty服务器

    image-20210623202223972

    指定端口的另一种方式是在命令中jetty:run -Djetty.http.port=9090

    image-20210623203146003

    配置tomcat同理,如图所示。

    image-20210623203520014

maven环境下多模块项目的构建

  1. 创建父模块,什么也不用选,直接点击Next,然后填写GroupIdArtifactId,点击Next,最后点击Finish即可。

    image-20210623211352537

    1. 创建maven_dao模块

      image-20210623212610954

      image-20210623212715999

      image-20210623212732309

      1. 创建maven_service模块同上

      2. 创建maven_controller模块,只需要选择maven-archetype-webapp即可,其它操作同上。

        image-20210623213303895

      修改JDK版本

      单元测试版本

      删除pluginManagement标签

Q.E.D.


热爱生活,热爱程序