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

Maven入门简介

程序员文章站 2022-06-28 17:07:11
什么是Maven?Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation from a central piece of information是一个软件(特别是Java软件)项目管理及自...

什么是Maven?

Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation from a central piece of information
是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,Maven利用一个*信息片断能管理一个项目的构建、报告和文档等步骤

为什么要用Maven?

1.简化构建过程

Maven 确实屏蔽了很多细节,它已经大大简化了开发人员的工作

2.提供统一的构建系统

Maven 使用项目对象模型(POM)和一组所有项目共享的插件来构建项目,从而提供统一的构建系统。开发人员使用 Maven 构建项目的话,后期维护项目会节省大量时间

3.提供优质的项目信息

Maven 提供了大量有用的项目信息,这些信息部分来自您的POM,部分来自项目源

4.提供最佳实践开发指南

Maven 会汇总当前最佳开发实践的原则,并通过 Maven 影响其他项目

5.允许透明迁移到新功能

Maven 为 Maven 客户端提供了一种安装更新的简单方法,开发人员可以简单便捷的利用 Maven 的最新特性

Maven的配置

首先我们要下载Maven,这里附上maven下载地址Maven下载地址
下载之后当然就是Maven的配置了,接下来就是解压,之后在电脑的环境变量中配置如下:
新建:M2_HOME 变量为:解压Maven文件夹的根目录
然后再Path环境属性中添加:bin: %M2_HOME%\bin;
Maven入门简介
Maven入门简介
配置以后在cmd中运行 mvn -v 测试是否成功
Maven入门简介
当然,安装后的*仓库的地址为外网的,下载速度相对较慢,可以通过配置文件修改私服仓库为国内
即修改:apache-maven-xxx\conf目录下的settings文件
添加本地仓库:<localRepository>D:\UserData\repo</localRepository>
中间的文件夹可以自己指定
指定私服仓库

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

目录结构


└─src                      源码
    ├─main                 主要
    │  ├─java              java源码
    │  │  └─com            
    │  │      └─woniuxy
    │  │          └─build  包名
    │  └─resources         资源: 配置文件
    └─test                 测试相关
        └─java
            └─com
                └─woniuxy
                    └─build

生命周期

maven对构建(build)的过程进行了抽象和定义,这个过程被称为构建的生命周期(lifecycle),生命周期(lifecycle)由多个阶段(phase)组成,每个阶段(phase)会挂接一到多个goal,goal是maven里定义任务的最小单元,相当于ant里的target,可以理解maven为一个插件的容器,每个插件绑定到某个goal执行

默认生命周期:校验-初始化-编译-测试-打包-集成测试-安装-部署
validate-initialize-compile-test-package-integrationTest-install-deploy
Maven入门简介

Maven坐标

Maven坐标主要用来指明其依赖范围,主要包括一下几种

  • compile:编译时依赖在所有阶段都可获得,这是默认值
  • provided: 提供的依赖范围用来编译应用程序,但无需部署。若你用到jdk或者应用服务器提供的JAR,则使用此范围,servlet APIs就属于这个依赖范围。测试时,此依赖范围也加入到classpath
  • runtime:运行依赖范围在编译阶段是不需要的,只有在运行时需要,比如JDBC驱动程序
  • test:测试范围依赖,仅在编译和运行单元测试时需要
  • system 本地依赖,不建议使用
    Maven入门简介

依赖传递

只有编译时和运行时依赖是传递的
其中主要包括两个原则

  • 最短路径原则:
    A->B->C(0.2)
    A->C(0.1)
    此时的依赖为:C(0.1)
  • 优先声明原则:
    A->B->C(0.2)
    A->D->C(0.1)
    此时的依赖为:C(0.2)

仓库

本地仓库(local)->私服镜像(aliyun)->*仓库central

常用命令

  • alias mvni=‘mvn -T 1C clean install -Dmaven.test.skip=true’
  • alias mvnp=‘mvn -T 1C clean package -Dmaven.test.skip=true’
  • alias mvnv=‘mvn versions:set -DgenerateBackupPoms=false’
  • alias mvnd=‘mvn -T 1C clean deploy -Dmaven.test.skip=true’
  • alias mvndd=‘mvn -T 1C clean deploy -P dev -Dmaven.test.skip=true’
  • alias mvndo=‘mvn -T 1C clean deploy -P online -Dmaven.test.skip=true’
  • alias mvnc=‘mvn -T 1C clean eclipse:clean idea:clean’

给pom.xml添加Servlet依赖

<!--▽Servlet规范相关▽-->
<!-- servlet API支持 -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
</dependency>
<!-- jstl支持 -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.1.2</version>
    <type>jar</type>
</dependency>
<dependency>
    <groupId>taglibs</groupId>
    <artifactId>standard</artifactId>
    <version>1.1.2</version>
    <type>jar</type>
</dependency>
<!--△Servlet规范相关△-->

本文地址:https://blog.csdn.net/weixin_47057498/article/details/107892933

相关标签: java