Maven概述,Maven环境变量配置,IDEA创建Maven项目,Maven的核心概念

Maven是一个用于Java项目的构建工具,通过解决项目构建过程中的依赖管理和项目对象模型(POM)实现自动化构建。本文介绍了Maven的基本概念,如构建流程、坐标系统和仓库结构,详细讲解了Maven环境变量配置,IDEA中如何配置Maven以及创建Maven项目。此外,还探讨了Maven的核心概念,包括约定的目录结构、POM文件和依赖管理。
摘要由CSDN通过智能技术生成

1.当前开发中存在的问题

1.1. 一个项目就是一个工程

如果项目非常庞大,就不适合继续使用package划分模块.最好是每一个模块对应一个项目,利于分工协作,也利于项目针对性能化的部署.

1.2. 项目中需要的jar包必须拷贝

项目中的jar包需要手动"复制" "粘贴"到WEB-INF/lib文件夹中

同样的的jar包会重复出现在不同的项目中,一方面浪费存储空间,而工程比较臃肿.

借助Maven,可以将jar包仅仅保存在"仓库中",有需要使用的工程只需要引用仓库中的jar包,并不需要真的需要把jar包复制过来。

1.3. jar包需要提前准备

不同的技术网站jar包下载方式存在一定的差异.

有些技术官网其jar就是通过Maven或者SVN/GIT等专门的工具进行下载.

借助于Maven可以以一种规范的方式下载jar包.因为所有知名框架或者第三方的工具包,按照统一的规范存放在Maven中央仓库。

1.4. jar包依赖的jar包需要导入项目

如果所有的jar包之间的依赖性关系都需要程序员维护,提高了学习成本。

2.Maven概述

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。Maven是一款服务于Java平台的自动构建工具。

Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。

Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享JARs。

2.1 什么是构建

以Java源文件,框架配置文件,JSP,HTML,图片等资源作为原材料,去生产一个可以运行的项目过程。

编译:Java源文件----->编译(javac)----->Class文件—Java–>交给JVM执行

部署:一个BS项目运行的并不是动态WEB项目本身,而是这个动态WEB工程"编译的结果"

2.2 构建的各个环节

2.2.1 清理 maven clean

将以前编译得到的class字节码文件删除,为下次编译做准备

2.2.2 编译 maven compile

将Java源程序编译成class字节码文件

2.2.3 测试 maven test

自动测试,自动调用JUnit程序

2.2.4 报告
测试程序执行的结果就是测试报告

2.2.5 打包 maven package
就是将编译好的class字节码文件进行封装成一个文件包(war包),web工程是war包,Java工程是jar包

2.2.6 安装 maven install
Maven的特定概念,将打包得到的文件复制到"仓库"中指定的位置

2.2.7 部署(发布) maven deploy
将动态的web项目生成的war包复制到指定的服务器目录下,可以使其运行

2.3 基本原理

Maven 的基本原理很简单,采用远程仓库和本地仓库以及一个类似 build.xml 的 pom.xml ,将 pom.xml 中定义的 jar 文件从远程仓库下载到本地仓库,各个应用使用同一个本地仓库的 jar ,同一个版本的 jar 只需下载一次,而且避免每个应用都去拷贝 jar 。

同时它采用了现在流行的插件体系架构,只保留最小的核心,其余功能都通过插件的形式提供,所以 maven 下载很小,在执行 maven 任务时,才会自动下载需要的插件。
在这里插入图片描述

mirror相当于一个拦截器,它会拦截maven对remote repository的相关请求,把请求里的remote repository地址,重定向到mirror里配置的地址。
在这里插入图片描述

此时,B Repository被称为A Repository的镜像。如果仓库X可以提供仓库Y存储的所有内容,那么就可以认为X是Y的一个镜像。换句话说,任何一个可以从仓库Y获得的构件,都能够从它的镜像中获取。

< mirrors/>是镜像列表,是maven从远程仓库里下载构件的一组服务器镜像。镜像能减轻中央maven库的负载,也能突破代理等的网络环境的限制,每个仓库都有一个ID,而mirror需要和仓库的ID对应。

2.4 坐标

(1)定义

坐标用来标识时空中的某个点,方便人们找到位置,如中电信息大厦可以用经纬度坐标找到,也可以通过国家、省市区、街道、门牌组成的坐标去找。

(2)分类

groupId: 组织ID,一般是公司、团体名称 com.alibaba.xxx

artifactId:实际项目的ID,一般是项目、模块名称 工程名

version:版本,开发中的版本一般打上 SNAPSHOT 标记

Type/packaging :包类型,如JAR,WAR,POM…

classifier:分类,如二进制包、源、文档

通过这个规则就可以定位到世界上任何一个构件。

2.5 三级仓库结构

(1)远程公用仓库

Maven 内置了远程公用仓库: http://repo1.maven.org/maven2 这个公用仓库也叫中央仓库是由 Maven 自己维护,包好了世界上大部分流行的开源项目构件。

https://mvnrepository.com

(2)内部中央仓库

也称私有共享仓库(私服)。一般是由公司自己设立的,只为本公司内部共享使用。它既可以作为公司内部构件协作和存档,也可以作为公用类库镜像缓存,减少在外部访问和下载的频率。

(3)本地仓库

Maven 会将工程中依赖的构件(Jar包)从远程下载到本机一个目录下管理,通常默认在 $user.home/.m2/repository 下。

3.Maven环境变量配置

3.1 检查JAVA_HOME环境变量

MAVEN是由Java编写,其也依赖JAVA环境变量

3.2 解压安装Maven文件

在这里插入图片描述

3.3 配置MAVEN_HOME

MAVEN_HOME/M2_HOME的配置是为了maven中命令的执行
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

通过:mvn -version/mvn -v 查看安装的Maven信息

3.4 Maven常用命令

  1. mvn clean: 清理

  2. mvn compile :编译主程序

  3. mvn test-compile : 编译测试程序

  4. mvn test : 执行测试

  5. mvn package : 打包

  6. mvn install : 安装

4.IDEA配置本地Maven

注意:maven默认的JDK版本:1.5,所以在使用Maven需要对maven的编译环境进行配置。
在这里插入图片描述

4.1 配置本地仓库

D:/DevTools/server/repository
本地的仓库 jar包存放的文件夹。

在IDEA 2020.1 版本不能配置本地仓库,配置后可能出现无法找到jar包

需要在IDEA中指定本地仓库。

4.2 在settings中配置JDK编译的版本号

<profiles>

<profile>

      <id>jdk1.8</id>

      <activation>

  <activeByDefault>true</activeByDefault>

        <jdk>1.8</jdk>

      </activation>

     <properties>

 <maven.compiler.source>1.8</maven.compiler.source>

  <maven.compiler.target>1.8</maven.compiler.target>

   <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>

 </properties>

</profile>

</profiles>

4.3 配置镜像服务器

<!-- 配置阿里云镜像 -->

 <mirror>

  <id>alimaven</id>

  <name>aliyun maven</name>

  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>

  <mirrorOf>central</mirrorOf>

</mirror>

4.4 在IDEA中配置本地Maven

在这里插入图片描述
在这里插入图片描述

5.IDEA创建Maven项目

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值