• Maven基本操作详解


    Maven

    • 服务于 Java 平台的自动化构建工具

      • 构建:以 Java 源文件、框架配置文件、jsp、HTML、图片等资源作为”原材料“生产可以运行的项目的过程

      • 编译:.java.class,虚拟机进行

      • 部署:B/S 项目运行的是动态 Web 工程编译后的结果

    作用

    1. 拆分项目进行模块管理
    2. 利用 Mavenjar 包保存在项目仓库
      • 根据需求引用文件接口
      • 无需复制 jar 包到项目目录
    3. 以规范的方式下载 jar
      • 所有知名框架或三方工具 jar 包都已经按照统一规范存放在 Maven 的中央仓库
    4. 管理 jar 包依赖
      • 自动将被依赖的 jar 包导入
      • 管理 jar 包版本
    5. 编译程序:.java 文件 → .class 文件
    6. 测试代码是否正确
      • Maven 测试模块
    7. 打包程序
      • 项目打包为 jar 包、war
    8. 部署项目
      • 部署项目到服务器,一般不使用 Maven 进行
    • 运行时环境

      • 一组 jar 包的引用,并未把 jar 包本身复制到工程中

        • 例如:JRE
      • 不会在目录中出现

    安装

    • 安装Maven核心程序步骤

      1. 检查 JAVA_HOME 环境变量
        • Maven 使用 Java 编写,运行需要 Java 环境
      2. 解压 Maven 核心程序压缩包
        • 路径尽量不含中文、空格,防止不必要意外
          • bin 目录存放执行程序
          • conf 目录存放 Maven 配置文件
      3. 配置 Maven 相关环境变量
        • 创建 MAVEN_HOMEM2_HOME 环境变量
          • 路径值只到到 bin 目录上级
        • 系统 path 变量添加值
          • %MAVEN_HOME%\bin
        • cmd 窗口运行 mvn -v 命令查看 Maven 版本

    构建

    • Maven 负责项目的自动化构建

      • 自动进行编译必须知道 Java 源文件保存结构
    • 构建的具体环节

      1. 清理
        • 删除以前编译得到的 class 字节码文件,为下一次编译做准备
      2. 编译
        • 将 Java 流程序编译为 .class 文件
        • 批量编译,同时执行
      3. 测试
        • 自动测试,自动调用 junit 程序
        • 批量执行
      4. 报告
        • 测试程序执行的结果
      5. 打包
        • 生成压缩文件
          • 动态 Web 工程打 war
          • 普通 Java 工程打 jar
      6. 安装
        • Maven 特定的概念
        • 将打包得到的文件复制到仓库指定位置
      7. 部署
        • 将动态 Web 工程生成的 war 包复制到 Servlet 容器指定目录下,使其可以运行

    目录结构

    • 自定义文件被其他 maven 工程引用

      1. 通过配置方式明确告诉

        classpath:spring-context.xml
        
        • 1
      2. 遵守框架内已经存在的约定

        • log4j.properties
        • log4j.xml
    • 约定的目录结构

      • 根目录:工程名
        • src 目录:存放项目代码
          • main 目录:存放主程序文件
            • java 目录:存放 Java 源代码文件
            • resource 目录:存放程序使用的配置文件
            • webapp 目录:Web 工程目录,存放 js、jsp、web.xml 等文件
          • test 目录:存放测试程序文件,可以没有
            • java 目录:存放测试用的 Java 源代码文件
            • resource 目录:存放测试程序使用的配置文件
        • [target 目录]
          • 存放编译后的.class文件
          • 构建时不存在,编译后产生该目录
        • pom.xml 文件:Maven 核心配置文件,配置 Maven 依赖项等资源

    常用命令

    • mvn clean:清理,删除之前的 target
    • mvn compile:编译主程序,即 src/main/java 目录下程序
      • 编译完成后生成 target 目录
    • mvn test-cpmpile:编译测试程序
    • mvn test:执行测试
      • 默认插件版本不对时会报错,需要手动修改插件版本
    • mvn package:打包 src\main\ 目录下文件
      • 根据工程类型打包方式为 jarwar
    • mvn install:安装
      • 将 jar、war 包复制到 maven 仓库
    • mvn site:生成站点

    仓库

    • 分类
      • 本地仓库
        • 当前电脑上部署的仓库目录
        • 为当前电脑上所有 Maven 工程服务
      • 远程仓库
        • 私服
          • 搭建在局域网环境
          • 为局域网范围所有 Maven 工程服务
        • 中央仓库
          • 架设在 Internet
          • 为全世界所有 Maven 工程服务
        • 中央仓库镜像
          • 架设在各大洲
          • 为中央仓库分担流量,减轻中央仓库的压力,同时更快响应用户请求
    • 仓库中的文件
      • Maven 需要的的插件
      • 第三方框架或工具的 jar
      • 自己开发的 Maven 工程

    jar 包下载

    下载方式
    • Maven 核心程序仅定义抽象的生命周期
      • 具体工作必须由特定插件完成
      • 插件本身并不包含在 Maven 核心程序中
    • 执行 Maven 需要用到某些插件
      1. 首先到本地仓库查找
        • 本地仓库默认位置:C:用户\当前用户名\.m2\repository
      2. 本地找不到需求插件自动搜索私服
        • 私服中没有或不存在私服,自动连接外网通过镜像仓库下载
          • 外网仅指区别于局域网的网络环境
      3. 连接外网后进行下载,下载完成后私服保留一份,再发送到本地下载
        • 无法连接外网则构建失败
      4. 镜像仓库中没有会找中央仓库下载
        • 中央仓库没有即没有该 jar 资源
    修改本地仓库位置
    1. 找到Maven 程序解压目录中 \conf\setting.xml 文件
    2. setting.xml 文件中找到 localRepository 标签
    3. 找到 标签对
      • 默认在注释中
    4. 将标签内容修改为已经准备好的 Maven 仓库目录
    <localRepository>
        D:\Tool\Maven\software		
    localRepository>
    
    • 1
    • 2
    • 3
    修改镜像仓库
    • Maven 默认的官方仓库地址在国外,访问下载速度较慢

      • 通过配置镜像仓库使用国内的镜像仓库进行下载,提高下载速度
      • Setting.xml 文件中 标签组中
        • 写在上面的仓库地址优先生效
      <mirrors>
          
      	<mirror>
          	<id>alimavenid>
            	<mirrorOf>centralmirrorOf>
            	<name>aliyun mavenname>
            	<url>http://maven.aliyun.com/nexus/content/groups/public/url>
          mirror>  
         	
         	<mirror>
          	<id>maven-default-http-blockerid>
            	<mirrorOf>external:http:*mirrorOf>
            	<name>Pseudo repository to mirror external repositories initially using HTTP.name>
            	<url>http://0.0.0.0/url>
            	<blocked>trueblocked>
      	mirror> 
      mirrors>
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17

    POM

    • Project Object Model:项目对象模型
      • DOM(Document Object Model):文档对象模型
    • pom.xmlMaven 的核心配置文件
      • 与构建过程相关的一切设置都在此文件配置
      • 相当于 web.xml 对于动态 Web 工程
    属性
    基本属性
    • modelVersion

      • 指定 pom.xml 符合的 Maven 模型版本

      • 对 Maven 2 和 3 只能是 4.0.0

      •  <modelVersion>4.0.0modelVersion>
        
        • 1
    • packaging

      • 项目类型,描述打包后的输出类型

      • 默认 jar

        • 常见 warpomrarear
      •  <packaging>warpackaging>		
        
        • 1
    • dependenciesdependency:依赖标签,相当于 import

      • dependencies

        • 母标签,中间可以嵌套多个依赖
      • dependency:一组标签添加一个依赖

        • 依赖中添加 jar 包坐标
      • <dependencies>
        	
            <dependency>
            	<groupId>org.mybatisgroupId>
                <artifactId>mybatisartifactId>
                <version>3.5.9version>
            dependency>
        dependencies>
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
    • properties:配置属性

      • Maven 自带配置属性 和 自定义属性

      • properties 内可以使用自定义标签声明变量

        • 使用 ${标签名} 引用变量值
        • 多用于管理依赖的版本号
      • <properties>
            <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>	
            <maven.compiler.source>1.8maven.compiler.source>					
            <maven.compiler.target>1.8maven.compiler.target>					
        properties>
        
        • 1
        • 2
        • 3
        • 4
        • 5
    • buildmaven 进行项目构建时配置信息

      • 例如:指定编译插件 Java 代码的 JDK 版本

      • pluginsplugin:插件配置

        • 配置插件,添加插件坐标导入
        • configuration:配置插件信息
      • <build>
            
        	<plugins>
                
                <plugin>
                    <groupId>org.apache.maven.pluginsgroupId>
                    <artifactId>maven-surefire-pluginartifactId>
                    <version>3.0.0-M3version>
                    <configuration>
                        <forkCount>0forkCount>
                        <testFailureIgnore>truetestFailureIgnore>
                    configuration>
                plugin>
            plugins>
            
            <resources>
                <resource>
                    <directory>src/main/javadirectory>
                    	<includes>
                            <include>**/*.propertiesinclude>
                            <include>**/*.xmlinclude>
                        includes>
                    resource>
            resources>
        build>
        
        • 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
    • parent:继承标签,继承父工程 pom.xml 文件的配置

      • 
        <parent>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-parentartifactId>
            <version>2.6.4version>
            <relativePath/> 				
        parent>
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
    • module:聚合,安装各个模块

      • 配置此属性后可以统一打包所有模块
    坐标
    • 数学坐标概念

      • 平面中 X、Y 向量唯一定义一个点

      • 空间中 X、Y、Z 向量唯一定义一个点

    • Maven 坐标概念

      • 三个向量在仓库中唯一定义一个 Maven 工程

        1. groupid:组织 ID

          • 一般是公司或组织 域名倒序 + 项目名

          • <groupid>com.baidu.demogroupid>
            
            • 1
        2. artifactid:模块、项目名称

          • <artifactid>demoartifactid>
            
            • 1
        3. version:项目版本号

          • 三位数字标识 + 版本类别

          • SNAPSHOT

            • 快照,常在开发中使用
            • 不稳定版本
          • LATEST

            • 某个特定构件的最新发布
            • 可能是发布版,或 SNAPSHOT
          • RELAEASE

            • 最后一个发布版
          • <verison>1.0.0-SNAPSHOTverison>
            
            • 1
    坐标与仓库路径
    • 一般 jar 包被识别为 groupId:artifactId:version 格式

    • 
      <groupid>com.baidu.demogroupid>
      <artifactid>demoartifactid>
      <verison>1.0.0-SNAPSHOTverison>
      
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
    资源插件
    编译配置文件
    <build>
        <resources>
            <resource>
                
                <directory>src/main/javadirectory>
                <includes>
               		
                    <include>**/*.propertiesinclude>
                    <include>**/*.xmlinclude>
                includes>
                
                
                <filtering>falsefiltering>
            resource>
        resources>
    build>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 不声明 resources
      • maven 执行编译时把 src/main/resources 目录中文件拷贝到 target/classes 目录中
      • 对于 src/mian/java 目录下非 Java 文件不处理,不拷贝到 target/classes
    • 其他类型文件在 src/mian/java 目录中
      • 运行时需要用到 src/mian/java 目录中文件
        1. build 标签中添加 resoueces 标签
        2. 配置需要扫描处理的文件类型
    修改 JDK 语言级别
    • IDEA 中修改语言级别

      • maven 项目更新后会初始化回默认语言级别
        • 很可能和项目语言级别不匹配
    • 使用属性配置项目运行与编译的 JDK 版本

      1. 使用插件形式指定
        • 会强制更改 IDEA 的语言级别配置
      2. 使用属性配置
    • 
      <properties>
          
          <maven.compiler.source>1.8maven.compiler.source>
          <maven.compiler.target>1.8maven.compiler.target>
          
          <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
          <project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
      properties>
      
      
      <build>
          <plugins>
              <plugin>
                  <groupId>org.apache.maven.pluginsgroupId>
                  <artifactId>maven-compiler-pluginartifactId>
                  <version>2.3.2version>
                  <configuration>
                      <source>1.8source>				
                      <target>1.8target>				
                  configuration>
              plugin>
          plugins>
      build>
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
    测试插件更新
    • Maven版本较高时进行打包可能会有编译测试程序不通过

      • 需要更新测试插件
    • <plugins>
      	<plugin>	
          	<groupId>org.apache.maven.pluginsgroupId>
          	<artifactId>maven-surefire-pluginartifactId>
         		<version>3.0.0-M5version>
          	<configuration>
              	<skipTests>falseskipTests>
              	<testFailureIgnore>truetestFailureIgnore>
              	<forkMode>onceforkMode>
          	configuration>
      	plugin>
      plugins>
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12

    依赖

    • Maven 解析依赖信息会到本地仓库中查找被依赖的 jar 包

      • 自己开发的 Maven 工程使用 install 命令安装后被放入仓库中
    依赖范围
    • 范围
      • 三个范围
        • compile
          • 全部阶段都生效
          • 不标明时默认使用的范围
        • test
          • 只针对测试阶段有效
        • provided
          • 只针打包前的流程
          • 不参与部署,不会被打包
    作用\依赖范围compiletestprovided
    对主程序有效无效有效
    对测试程序有效有效有效
    打包参与不参与不参与
    部署参与不参与不参与
    传递性
    • 被导入 jar 包的依赖会自动导入
      • 添加一个依赖后该 jar 包依赖自动导入
    • 直接依赖
      • maven 工程自身导入的依赖
    • 间接依赖
      • 导入依赖所依赖的文件
      • 自动传递导入
    • 作用
      • 可以传递的依赖不必在每个模块工程中重复声明
      • 在最下层工程中依赖一次即可自动传递依赖
    • 注意
      • compile 范围依赖无法传递
    依赖排除
    • 是相对于传递性而言的
      • 排除掉传递来的不想要的 jar 包
        • 例如:不稳定 jar 包对项目可能有干扰
    • 在要排除的工程依赖信息中添加
      • 当前工程排斥此引用依赖后,此工程被其他工程依赖时不会被传递该依赖
    
    <exclusions>
    	<exclusion> 								
            <groupId>项目名groupId>
            <artifactId>模块名artifactId>
        exclusion>
    exclusions>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    依赖原则
    • 当不同版本的相同 jar 依赖产生冲突
      • 路径较短优先:中间传递的依赖又使用了其他版本的相同依赖
        • 即 传递次数较少优先
      • 路径相同时:同时依赖的 jar 包依赖的不同版本的相同 jar 包
        • 先声明的依赖优先
    统一管理依赖版本
    • 比如对 spring 4.0.0 版本统一升级 4.1.1

      • 手动修改不靠谱
    • proerties 标签内使用自定义标签统一声明版本号

      • 凡是需要统一配置引用的都可以使用

        • 例如:字符编码 UTF-8
        <properties>
            
            <maven.spring.version>
                
                4.0.0.RELEACE
            maven.spring.version>
        properties>
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
      • 需要统一版本的位置使用自定义标签引用声明的版本号

        • 引用格式:${自定义标签}
        <dependency>
        <groupId>...groupId>
        <artifactId>...artifactId>
        <version>
            
            ${maven.spring.version}
        version>
        dependency>
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
    
    <dependencies>
        
        <dependencies>
            <groupid>com.baidu.demogroupid>
            <artifactid>demoartifactid>
            <verison>1.0.0-SNAPSHOTverison>
            <scope>compilescope>
        dependencies>/
    dependencies>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    Junit

    • 专门的测试框架

      • 对类中的方法进行测试

      • 每一个方法单独测试

        • 方法是测试的基本单位
    • Maven 借助单元测试批量测试类中的大量方法是否符合预期

    • 使用步骤

      1. 加入依赖

        • <dependency>
              <groupId>junitgroupId>
              <artifactId>junitartifactId>
              <version>4.13.2version>
              <scope>testscope>
          dependency>
          
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
      2. 在 Maven 项目中 src\test\java 目录下创建测试程序

        • 命名规范
          • 测试类名:Test+类名
          • 测试方法名:Test+方法名
      3. 测试方法定义规则

        • 方法必须是 public
          • 无返回值
          • 方法名自定义
        • 方法上面加 @Test 注解
          • 导入 org.junit.Test

    生命周期

    流程
    • 生命周期:构建项目的过程,不能打乱顺序

    • Maven 核心程序定义了抽象的生命周期

      • 各阶段具体任务由插件完成
    • Maven 为更好实现自动化构建的执行特点

      • 无论想要执行生命周期哪个阶段都从此生命周期最初位置开始执行
      • 按照此特点执行到生命周期各个阶段
    • 插件

      • 生命周期各阶段仅定义了要执行的任务
        • 各阶段和插件的目标是对应的
      • 相似的目标由特定插件完成
        • 可将目标看作调用插件功能的命令
    • 例如

      生命周期阶段插件目标插件
      compilecompilemaven-compiler-plugin
      test-compiletestCompilemaven-compiler-plugin
    三套周期
    • 三套独立的生命周期,按照阶段顺序排列命令
      1. Clean Lifecycle
        • 进行构建之前进行清理工作
        • pre -clean:执行需在 clean 前完成的工作
        • clean:移除所有上一次构建的文件
        • post -clean执行需要在 clean 之后立刻完成的工作
      2. Default Lifecycle:构建的核心部分:编译、测试、打包、安装、部署等
        1. validate
        2. generate-sources
        3. process-sources
        4. generate-resources
        5. process -resources :复制并处理资源文件至目标目录,准备打包
        6. compile:编译项目的源代码
        7. process-classes
        8. generate-test-sources
        9. process-test-sources
        10. generate-test-resources
        11. process-test-resources:复制并处理资源文件至目标测试目录
        12. test-compile:编译测试源代码
        13. process-test-classes
        14. test:使用合适的单元测试框架运行
          • 测试代码不会被打包或部署
        15. prepare-package
        16. packaeg:接受编译好的代码,打包成可发布的格式,如 jar
        17. pre-integration-test
        18. integration-test
        19. post-integration-test
        20. verify
        21. install:将包安装到本地仓库,以便其他项目依赖
        22. deploy:将最终的包复制到远程的仓库
          • 让其他开发人员与项目共享或部署到服务器上运行
      3. Site Lifecycle
        1. 生成项目报告,站点,发布站点
        2. pre -site:行需要在生成站点文档之前完成的工作
        3. site:生成项目的站点文档
        4. post -site :执行需要在站点文档生成之后立刻完成的工作
          • 并为部署做准备
        5. site -deploy:将生成的站点文档部署到特定的服务器

    继承

    意义
    • 为什么需要继承

      • 例:junit 依赖

        • junittest 范围依赖,不能传递
          • 必然零散分布在各个模块工程中,很容易造成版本不一致
      • 解决思路:将 junit 依赖统一提取到“父”工程

        • 子工程中声明 junit 依赖时不指定版本
          • 以父工程中统一设定的为准,同时便于统一管理
    操作步骤
    1. 创建 maven 工程作为父工程

      • 打包方式为 pom
    2. 在子工程声明对父工程的引用

      • 使用相对于本文件的相对路径避免找不到文件

        
        <parent>
            
            <groupId>... groupId>
            <artifactId> ... artifactId>
            <version> ... version>
            
            <relativePath>
        		
                ../Parent/pom.xml
            relativePath>
        parent>
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
        • 12
    3. 将子工程与父工程的坐标中重复的内容删除

      • 重复路径代码冗余
    4. 父工程统一管理 junit 依赖

      • 子工程中删除 junit 依赖的版本号
        • 不删除版本号意味着重写父工程依赖
        • 将会使用不同版本依赖
    5. 注意:配置继承后执行安装命令需要先安装父工程

    聚合

    • 作用:一键安装各模块

    • 配置方式:在总聚合工程配置各个参与聚合的模块

      • 
        <modules>
            
            <module>../Hellomodule>
            <module>../demomodule>
        modules>
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
    • 使用方式:在聚合工程的 pom.xml 文件安装模块

    Eclipse 使用 Maven

    配置 Maven

    • Maven 插件设置
      • Window -> Preferences -> Maven
        1. installations:指定 Maven 核心程序的位置
          • add 添加本地 Maven 程序
          • 不建议使用自带的 Maven 程序
        2. user setting
          • 指定本地 Maven 程序的 conf/settings.xml 文件位置
          • 获取本地仓库位置
            • 指定 settings.xml 文件自动获取

    创建 Maven 工程

    1. 创建 Maven 版 Java 工程

      1. 创建项目时选择 maven 项目
      2. 添加 groupidartifactidversion
      3. 默认选择 jar 方式创建完成
    2. 创建 Maven 版 Web 工程

      1. 创建项目时选择 maven 项目

      2. 添加 groupidartifactidversion

      3. 选择 war 方式创建完成

      4. 修改配置创建 web 工程配置文件

        1. 进入 properties 中选择 Project Facets
        2. 取消选中 Dynamic,再重新选中
          • 自动生成 Web 工程配置文件
      5. 执行 Maven 命令

        • 右键 run as 执行常用命令
          • 没有的命令选择 buidle... 手动输入命令
    3. 创建文件

      • web 工程可能需要更新组件 maven-war-plugin 以支持更高版本 Eclipse
      • 添加依赖完成项目支持
        • 依赖范围是 Compile,运行 Web 项目时服务器可能报空指针异常
          • 依赖 jar 包被打包到 maven 仓库中,tomcat 无法读取

    导入 maven 工程

    • File → Import

      1. General:导入普通工程

        1. 需要有 Eclipse 配置文件识别工程
          • 通过 .settings、.classpath、.project 等配置文件识别是 Eclipse 的 java 工程
        2. Existing Projects into Workspaces
          • 选择文件路径,可将目标工程工程复制进来
      2. Maven:导入 Maven 工程

        • Existing Maven Projects

          • 选择文件路径:通过 pom.xml 文件识别 maven 工程

          • 不能将工程复制进来

    Web 工程自动部署

    • 手动
      1. 先手动打包生成 war 包
        • package
      2. 将 war 包放到 tomcat 的 webapps 目录下
    • 自动
      • 添加配置
        • 在 eclipse 中使用此配置会导致 tomcat 无法关闭
          • 强制关闭时会占用端口号
      • 在命令行窗口使用
        • 转到 web 项目目录下
        • 使用 mvn deploy 命令部署
    
    <build>
    	<finalName>工程名finalName>
        
        <plugins>
    		<plugin>
        		
        		<groupId>org.codehaus.cargogroupId>
    			<artifactId>cargo-maven2-plugin artifactId>
        		<version>1.2.3version>
    	  		<configuration>
    				
    				<container>
    	  	  			<containerId>tomcat9 containerId>
    	  				<home>D:\Tool\TomCat\apache-tomcat-9.0.13home>
    		  		container>
    				<configuration>
    					<type>existingtype>
                    	  <home>D:\Tool\TomCat\apache-tomcat-9.0.13home>
    					<properties>
                            
                            <cargo.servlet.port> 8989 cargo.servlet.port>
    					properties>
    				configuration>
    			configuration>
    			<executions>
                    <eecution>
                        <id>cargo-runid>
                        
                        <phase>installphase>
                        <goals>
                            
                            <goal>rungoal>
                        goals>
                    eecution>
    			executions>
            plugin>
    	plugins>
    build>
    
    • 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

    IDEA 使用 Maven

    配置 Maven

    • 内置 Maven 组件不方便更改设置
      • 添加本地 Maven 程序,配置到 IDEA
    1. File → setting → 搜索 maven
      • 添加本地 Maven
        • 设置 Maven setting.xml 文件位置
        • 设置 Maven 仓库位置
          • 设置 setting.xml 文件后自动获取
      • Runner 设置
        • VM Options 设置
          • -DarchetypeCatalog=internal
            • maven 项目创建时会连接网络下载模板文件,管理大量 Maven 工程时会加载缓慢
            • 添加此参数从本地加载模板,不会再下载
        • JRE :配置项目使用的 JDK
    2. File → new project setting
      • 配置新项目通用模板
        • 配置内容跟上面相同

    创建 Maven 工程

    1. 创建新项目
    2. 选择 Maven
    3. Create from archetype:根据模板创建新项目
      • maven-archetype-quickstart:普通 java 项目
        • 设置项目名,可以添加父项目
        • 修改 id 和 版本
      • maven-archetype-webapp:web工程项目

    导入 Mavnen 工程

    • 和正常导入模块流程相同

      • 根据 pom.xml 文件自动识别 Maven 项目

    Maven 依赖

    • Maven 依赖查找网站

      • https://mvnrepository.com
        
        • 1
    • Maven 插件官方网站

      • https://maven.apache.org/plugins/index.html
        
        • 1
  • 相关阅读:
    ITSS信息话运维
    给服务器添加本地主机公钥 实现免密登录简单两步
    python中的字节码对象初探
    在智能家居领域产品中常用芯片
    分享篇:最近在研究的AIGC内容
    工作心得——css让元素居中的方法
    学习MySQL先有全局观,细说其发展历程及特点
    Python调用C++
    JuiceFS 在多云存储架构中的应用 | 深势科技分享
    解决 VMware Network Adapter VMnet1 IP 地址冲突导致无法打开路由器管理页面
  • 原文地址:https://blog.csdn.net/qq_66991094/article/details/126912619