• maven笔记


    maven简介
    maven主要服务于java平台的项目构建,依赖管理和项目信息管理。
    项目构建。通过maven我们可以更加快速的进行项目的构建。
    依赖管理系统
    使用groupId、artifactId、version组成的Coordination(坐标)唯一标识一个依赖进行对jar包的管理,我们只需要修改配置文件即可完成对jar包的更新和配置。
    任何基于maven构建的项目自身也必须定义这三个属性。

    <dependency>
    	<groupId>javax.servletgroupId>
    	<artifactId>javax.servlet-apiartifactId>
    	<version>3.1.0version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    groupId:一般用于定义当前maven项目隶属的实际项目-公司名称。
    artifactId:项目中的一个maven模块-项目名。
    version:则是当前maven项目的版本。

    maven统一jar包依赖,构建多模块项目,统一项目目录结构,一致的构建模型和插件机制。

    maven的安装
    jdk要求1.7以上
    下载地址:https://maven.apache.org/download.html
    配置环境变量
    将maven解压,将maven的根目录配置到系统环境变量中的MAVEN_HOME中,将bin目录配置到path变量中
    在这里插入图片描述
    在这里插入图片描述

    打开dos窗口,输入mvn -v显示maven版本就是配置成功。
    maven的目录结构

    *src**main****java
    *	*		*resources			
    *	*test****java
    *			*resources	
    *
    *pom.xml
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    目录作用
    /存放pom.xml和所有子目录
    src/mian/javajava源代码
    src/main/resources项目资源
    src/est/java测试java源代码
    src/est/resources测试所使用的资源

    修改settings.xml来配置maven
    setting.xml文件有两个位置,一个是用户目录下单.m文件夹中的settings.xml,另一个是安装根目录下的conf文件夹中.
    这里打开安装根目录下的conf文件夹;
    更改本地仓库路径:
    在这里插入图片描述
    一般会使用m2/repository这条路径进行保存。
    更改镜像:
    这里使用阿里云的镜像,下载更新依赖时,更加快速。
    在这里插入图片描述

        <mirror>
          <id>nexus-aliyunid>
          <mirrorOf>centralmirrorOf>
          <name>Nexus aliyunname>
          <url>http://maven.aliyun.com/nexus/content/groups/publicurl>
        mirror>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    maven常用命令
    maven命令格式如下:

    mvn [plugin-name]:[goal-name]
    
    • 1

    执行plugin-name插件的goal-name命令目标。

    命令描述
    mvn -version显示当前maven版本
    mvn clean清理项目生产的临时文件,一般是模块下的target目录
    mvn compile编译源代码,一般是编译模块下的src/main/java目录,会生成一个target目录
    mvn package项目打包工具,会在模块下的target目录生成jar或者war等文件
    mvn test测试命令
    mvn install将打包的jar或者war包放置到本地仓库中
    mvn deploy将打包的文件发布到远程仓库
    mvn site生成项目相关信息的网站
    mvn eclipse:eclipse将项目转化为eclipse项目
    mvn dependency:tree打印出项目的整个依赖树
    mvn archetype:generate创建出maven的普通java项目
    mvn tomcat7:run在tomcat容器中运行web应用
    mvn jetty:run调用Jetty插件的Run目标在Jetty Servlet容器中启动web应用

    执行mvn命令需要定位到项目中pom.xml所在的文件夹。

    pom.xml详情

    
    
    <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">
      <modelVersion>4.0.0modelVersion>
    
      <groupId>com.testgroupId>
      <artifactId>test01artifactId>
      <version>1.0-SNAPSHOTversion>
      <packaging>warpackaging>
    
      <name>test01 Maven Webappname>
      
      <url>http://www.example.comurl>
    
      <properties>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        <maven.compiler.source>11.0.11maven.compiler.source>
        <maven.compiler.target>11.0.11maven.compiler.target>
      properties>
    
      <dependencies>
        <dependency>
          <groupId>junitgroupId>
          <artifactId>junitartifactId>
          <version>4.12  version>
          <scope>testscope>
        dependency>
      dependencies>
    
      <build>
        <finalName>test01finalName>
          <plugins>
            <plugin>
              <groupId>org.apache.tomcat.mavengroupId>
              <artifactId>tomcat6-maven-pluginartifactId>
              <version>2.2version>
            plugin>
            <plugin>
              <groupId>org.apache.tomcat.mavengroupId>
              <artifactId>tomcat7-maven-pluginartifactId>
              <version>2.2version>
            plugin>
          plugins>
      build>
    project>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47

    说明xml版本,与编码方式:

    
    
    • 1

    头信息复制用就行:

    <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">
    
    • 1
    • 2

    基本信息:

    <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">
      <modelVersion>4.0.0modelVersion>
    
      <groupId>com.testgroupId>
      <artifactId>test01artifactId>
      <version>1.0-SNAPSHOTversion>
      <packaging>warpackaging>
    
      <name>test01 Maven Webappname>
      
      <url>http://www.example.comurl>
    project>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    project标签:放置整个项目信息。
    modelVersion标签:声明项目描述符遵循哪一个POM模型版本。模型本身的版本很少改变,虽然如此,但它仍然是必不可少的,这是为了当Maven引入了新的特性或者其他模型变更的时候,确保稳定性。
    packaging标签:打包类型。
    name:项目名称。maven生产文档用。
    url:项目主页的URL,maven生产文档用。

    properties标签

      <properties>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        <maven.compiler.source>11.0.11maven.compiler.source>
        <maven.compiler.target>11.0.11maven.compiler.target>
      properties>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    作为全局变量使用。通过${project.build.sourceEncoding}来使用project.build.sourceEncoding的值,这里是UTF-8。project.build.sourceEncoding设置了maven项目的编码格式。
    maven.compiler.source与maven.compiler.target是指定java编译的版本。
    依赖关系层:

      <dependencies>
        <dependency>
          <groupId>junitgroupId>
          <artifactId>junitartifactId>
          <version>4.12  version>
          <scope>testscope>
        dependency>
        <dependency>
        ....
        dependency>
        ...
      dependencies>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    dependencies标签:放置项目的所有依赖。
    dependency标签:代表独立的一个依赖的项目。
    scope标签:依赖项的适用范围。

    build标签描述了如何编译及打包项目,具体的编译和打包工作是通过其中的plugin配置来实现的。

     <build>
        <finalName>test01finalName>
          <plugins>
            <plugin>
              <groupId>org.apache.tomcat.mavengroupId>
              <artifactId>tomcat6-maven-pluginartifactId>
              <version>2.2version>
            plugin>
            <plugin>
              <groupId>org.apache.tomcat.mavengroupId>
              <artifactId>tomcat7-maven-pluginartifactId>
              <version>2.2version>
            plugin>
          plugins>
      build>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    finalName:打包生成的文件的名字。
    plugins:设置构建过程中需要的插件。

    使用idea构建java项目
    1.开始创建maven项目
    在这里插入图片描述
    2.设置jdk和maven项目模板
    在这里插入图片描述
    3.设置groupId,ArtifactId
    在这里插入图片描述
    4.设置settings文件路径,和仓库路径。在这里插入图片描述
    5.设置项目名称
    在这里插入图片描述
    之后等待项目创建,下载资源。
    在这里插入图片描述
    这里需要点击一下。
    在pom.xml文件中修改一下jdk的版本,设置一下单元测试的版本在这里插入图片描述
    之后删除pluginManagement标签内的内容。

    6.这边可以实现maven命令可视化操作。
    在这里插入图片描述
    创建后的项目目录有时候会不全,需要自己手动创建一下。创建好的目录,还需要自己手动设置一下。放置java源码就是Sources Root,放置资源文件就是Resources Root。在这里插入图片描述
    当然也可以在project stucture中设置。
    在这里插入图片描述
    7.编译项目
    添加配置
    在这里插入图片描述
    点击+,选择maven。
    在这里插入图片描述
    1.设置命令的名称
    2.是项目的目录
    3.执行的命令
    在这里插入图片描述
    点击进行编译
    在这里插入图片描述
    之后生成target目录,存放编译后的文件。
    在这里插入图片描述
    8.打包项目
    添加新的配置
    在这里插入图片描述
    步骤与之前相同。
    在这里插入图片描述
    点击运行。
    在这里插入图片描述
    在target目录下会生成对应的jar包或者war包。
    在这里插入图片描述
    这里可以自由切换maven命令或者配置新的maven命令
    在这里插入图片描述

    使用idea构建javaweb项目
    1.创建maven项目
    和之前类似,这里选择webapp的模板。
    在这里插入图片描述
    2.项目的结构
    步骤和之前的差不多,这里看webapp项目的目录结构。
    在这里插入图片描述
    多了个webapp的文件夹,这里用来放置前端项目。
    缺失的文件夹还是需要自己创建。
    在这里插入图片描述

    3.添加web部署的插件
    在build标签中添加plugins标签。
    Tomcat插件,在官网上可以下载标签。
    https://tomcat.apache.org/
    在这里插入图片描述
    自己选择想要的版本,这里选择2.2
    在这里插入图片描述
    之后复制,添加到本地的pom.xml文件中去
    在这里插入图片描述

        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.apache.tomcat.mavengroupId>
              <artifactId>tomcat6-maven-pluginartifactId>
              <version>2.2version>
            plugin>
            <plugin>
              <groupId>org.apache.tomcat.mavengroupId>
              <artifactId>tomcat7-maven-pluginartifactId>
              <version>2.2version>
            plugin>
          plugins>
        pluginManagement>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    在这里插入图片描述
    如果要添加自己想要使用的插件,一般官网上都会有对应的坐标标签进行复制。

    记得还要添加servlet依赖。

        <dependency>
          <groupId>javax.servletgroupId>
          <artifactId>javax.servlet-apiartifactId>
          <version>3.0.1version>
        dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4.启动项目
    操作同之前
    在这里插入图片描述
    之后启动
    在这里插入图片描述

  • 相关阅读:
    MYSQL之外键约束
    牛客java选择题每日打卡Day17
    OS2.2.5:调度算法之时间片轮转调度、优先级调度、多级反馈队列调度
    Linux中创建用户时要自己设置密码
    ZCMU--1431: Epic Game(C语言)
    C# Entity Framework 对接 Oracle11g遇到的问题及解决方案
    SpringCloud集成RocketMQ
    【力扣1464】数组中两元素的最大乘积
    淘宝用户购物行为数据分析
    【JS】阿拉伯数字转成中文数字(包括亿单位长数字)
  • 原文地址:https://blog.csdn.net/qq_50121370/article/details/127742617