首页 > 其他分享 >Maven生命周期和Maven多环境配置

Maven生命周期和Maven多环境配置

时间:2024-07-20 17:19:05浏览次数:6  
标签:生命周期 项目 配置 Maven 编译 测试 test 源代码

一、Maven功能

  Maven是专门用于管理和构建Java项目的工具,它的主要功能有:

  1.提供了一套标准化的项目结构(eclipse和MyEclipse,idea 通用的 )

 


  

Maven提供了一套标准化的项目结构,所有IDE使用Maven构建的项目结构完全一样,所有IDE创建的Maven项目可以通用

  2.提供了一套标准化的构建流程(编译,测试,打包,发布)

 

  

Maven提供了一套简单的命令来完成项目构建


  3.提供了一套依赖管理机制

依赖管理 :依赖管理其实就是管理你项目所依赖的第三方资源 (jar包、插件…)

 

 


  常见的项目构建工具如下图:

                             

 


  

二、Maven模型和工作流程


  Apache Maven 是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档
官网:http://maven.apache.org/

Maven模型:

• 项目对象模型 ( Project Object Model )
• 依赖管理模型 ( Dependency )
• 插件 ( Plugin )

 


Maven工作流程和概念:

 


当项目中使用坐标引入对应依赖jar 包后,首先会查找本地仓库中是否有对应的 jar 包: 如果有,则在项目直接引用 ; 如果没有,则去中央仓库中下载对应的 jar 包到本地仓库。
还可以搭建远程仓库,将来jar包的查找顺序则变为:本地仓库 à 远程仓库 à 中央仓库


  三、 Maven安装和配置:
  1. 解压 apache-maven-3.6.1.rar 既安装完成
  2. 配置环境变量 MAVEN_HOME 为安装路径的 bin 目录
  3. 配置本地仓库:修改 conf/settings.xml 中的 < localRepository > 为一个指定目录
  4. 配置阿里云私服:修改 conf/settings.xml 中的 <mirrors> 标签,为其添加如下子标签:

<mirror>
  <id>alimaven</id>
  <name>aliyun maven</name>
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  <mirrorOf>central</mirrorOf>
</mirror>

 


四、Maven常用命令:
  compile :编译
  clean:清理
  test:测试
  package:打包
  install:安装
五、Maven生命周期:
  Maven 构建项目生命周期描述的是一次构建过程经历经历了多少个事件

  Maven 对项目构建的生命周期划分为3套:
    clean:清理工作
    default:核心工作,例如编译,测试,打包,安装等
    site:产生报告,发布站点等


  同一生命周期内,执行后边的命令,前边的所有命令会自动执行
1.clean:清理工作

 


2. default:核心工作,例如编译,测试,打包,安装等

 


3. site:产生报告,发布站点等

 

 

Maven default 构建生命周期

-validate(校验) 校验项目是否正确并且所有必要的信息可以完成项目的构建过程。
-initialize(初始化) 初始化构建状态,比如设置属性值。
-generate-sources(生成源代码) 生成包含在编译阶段中的任何源代码。
-process-sources(处理源代码) 处理源代码,比如说,过滤任意值。
-generate-resources(生成资源文件) 生成将会包含在项目包中的资源文件。
-process-resources (处理资源文件) 复制和处理资源到目标目录,为打包阶段最好准备。
-compile(编译) 编译项目的源代码。
-process-classes(处理类文件) 处理编译生成的文件,比如说对Java class文件做字节码改善优化。
-generate-test-sources(生成测试源代码) 生成包含在编译阶段中的任何测试源代码。
-process-test-sources(处理测试源代码) 处理测试源代码,比如说,过滤任意值。
-generate-test-resources(生成测试资源文件) 为测试创建资源文件。
-process-test-resources(处理测试资源文件) 复制和处理测试资源到目标目录。
-test-compile(编译测试源码) 编译测试源代码到测试目标目录.
-process-test-classes(处理测试类文件) 处理测试源码编译生成的文件。
-test(测试) 使用合适的单元测试框架运行测试(Juint是其中之一)。
-prepare-package(准备打包) 在实际打包之前,执行任何的必要的操作为打包做准备。
-package(打包) 将编译后的代码打包成可分发格式的文件,比如JAR、WAR或者EAR文件。
-pre-integration-test(集成测试前) 在执行集成测试前进行必要的动作。比如说,搭建需要的环境。
-integration-test(集成测试) 处理和部署项目到可以运行集成测试环境中。
-post-integration-test(集成测试后) 在执行集成测试完成后进行必要的动作。比如说,清理集成测试环境。
-verify (验证) 运行任意的检查来验证项目包有效且达到质量标准。
-install(安装) 安装项目包到本地仓库,这样项目包可以用作其他本地项目的依赖。
-deploy(部署) 将最终的项目包复制到远程仓库中与其他开发者和项目共享。

 

六、多环境配置与应用
多环境配置有什么好处?

- maven提供配置多种环境的设定,帮助开发者使用过程中快速切换环境

        

 

多环境使用步骤:

步骤一:定义多环境

<!--定义多环境-->
<profiles>
  <!--定义具体的环境:生产环境-->
  <profile>
    <!--定义环境对应的唯一名称-->
    <id>env_dep</id>
    <!--定义环境中专用的属性值-->
    <properties>
      <jdbc.url>jdbc:mysql://127.0.0.1:3306/ssm_db</jdbc.url>
    </properties>
    <!--设置默认启动-->
    <activation>
      <activeByDefault>true</activeByDefault>
    </activation>
  </profile>

  <!--定义具体的环境:开发环境-->   <profile>     <id>env_pro</id>     ……     </profile> </profiles>

 

步骤二:使用多环境

【命令】:
mvn 指令 –P 环境定义id

【范例】:
mvn install –P pro_env

 


七、私服
私服是一台独立的服务器,用于解决团队内部的资源共享与资源同步问题

​Nexus: Sonatype公司的一款maven私服产品

下载地址:https://help.sonatype.com/repomanager3/download

         

 

私服资源操作流程分析:

       

 

Nexus安装与启动:

步骤一: 启动服务器(命令行启动)
- nexus.exe /run nexus

步骤二:访问服务器(默认端口:8081)
- http://localhost:8081

步骤三: 修改基础配置信息
- 安装路径下etc目录中nexus-default.properties文件保存有nexus基础配置信息,例如默认访问端口。


-步骤四:修改服务器运行配置信息
- 安装路径下bin目录中nexus.vmoptions文件保存有nexus服务器启动对应的配置信息,例如默认占用内存空间。

标签:生命周期,项目,配置,Maven,编译,测试,test,源代码
From: https://www.cnblogs.com/kongsq/p/18313424

相关文章

  • 解决 SpringBoot 应用中 MySQL 时区配置引起的时间不一致问题
    在开发SpringBoot项目时,表中有两个时间字段一个通过Java代码使用newDate()方法获取当前时间再插入数据库另一个是使用MySQL的CURRENT_TIMESTAMP作为默认值实际运行时发现数据库中的这两个时间值不一致,代码插入的时间比数据库自动生成的时间早了8小时,最终发现是y......
  • Redis主从配置
    转载请注明出处:Redis主从配置的特点数据同步:主库(Master)负责处理写请求,并将数据更改同步到从库(Slave)。从库主要用于读请求和数据备份。读写分离:通过配置从库为只读,可以有效分散读请求,提升系统性能。高可用性和容错:即使主库出现故障,从库也能继续提供读服务,并在主库恢复后重新同......
  • Mybatis配置代码解读(事务管理与连接池)
    目录配置代码解读事务管理方式数据库连接池 测试代码解读SqlSessionFactorySqlSession接口的代理对象▐ 前言在上一篇文章 手把手教你搭建Mybatis框架-CSDN博客 中分享了如何搭建Mybatis框架,但没有对一些配置文件和语法做出详细解读,刚开始学习的小白们可能会有......
  • 使用Java和Consul实现服务配置管理
    使用Java和Consul实现服务配置管理大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在现代微服务架构中,服务配置管理是一个重要的环节。Consul是一个用于服务发现和配置管理的工具,它提供了一个灵活的方式来管理和存储配置数据。本文将展示如何使用Java......
  • Node.js安装及环境配置超详细教程【Windows系统】
    目录Step1:下载安装包Step2:安装程序Step3:环境配置Step4:查看step5:nmp镜像 1.下载node.js  下载地址:Node.js 2.安装   2.1自定义安装路径(可以选择默认) 下图根据本身的需要进行,我选择了默认Node.jsruntime,然后Next:Node.jsruntime:表示运行环境npmpacka......
  • 大模型环境配置,包括多机多卡 conda env export > qwen_environment.yml同步环境
    多机一致环境:pipfreeze>requirements.txt装特定的torch,--extra-index-urlhttps://download.pytorch.org/whl/cu118pipinstalltorch==2.2.0+cu118--extra-index-urlhttps://download.pytorch.org/whl/cu118要将Conda/Mamba环境从一台机器同步到另一台机器,最好的......
  • maven项目容器化运行之2-maven中使用docker插件调用远程docker构建服务并在1Panel中运
    一.背景    公司主机管理小组的同事期望我们开发的maven项目能够在1Panel管理的docker容器部署。上一篇写了先开放1Panel中docker镜像构建能力maven项目容器化运行之1-基于1Panel软件将docker镜像构建能力分享给局域网-CSDN博客。这一篇就是演示maven工程的镜像构建、......
  • 【思科】链路聚合实验配置和背景
    【思科】链路聚合实验配置和背景背景链路聚合基本概念链路聚合聚合接口思科链路聚合协议01.PAgP协议02.LACP协议思科链路聚合模式LACP协议模式PAgP协议模式ON模式实验准备配置二层链路聚合LACP协议模式SW1SW2PC1PC2查看LACP聚合组建立情况查看LACP聚合端口情况查看逻......
  • 解决IDEA自带的Maven 3.9.x无法刷新HTTP Nexus私服的问题
    解决IDEA自带的Maven3.9.x无法刷新HTTPNexus私服的问题前言在日常开发中,我们经常会使用Maven来管理项目的依赖。而Nexus私服则是一个常用的Maven仓库管理工具,可以帮助我们更好地管理和分发项目的依赖。然而,有时候我们会遇到一些棘手的问题,比如在使用IDEA自带的Maven3.9.x时,无......
  • 深入Redis集群部署:从安装配置到测试验证的完整指南
      ......