Maven初识(二)——基本概念

  • Post author:
  • Post category:其他




为什么使用Maven?


Maven有两个核心功能,项目构建,依赖管理。这两个就是Maven的核心。除此之外,Maven还有对项目结构做出了规范,统一开发!




项目构建:


项目在编码完成后,对项目进行编译、测试、打包、部署等一系列的操作都通过 Maven来实现。




依赖管理:

  • 通过仓库的方式把包都集中放置在仓库里面,不用再把jar包放置在项目里面了,减少了项目的体积。
  • 通过配置的方式把jar包从仓库引入到项目里面,但是并不是你想象的那样需要配置所有的jar包,之所以叫做依赖管理,也是因为只需要配置核心的jar包,依赖的jar包Maven会在仓库里面找到再帮你自动导入。
  • 仓库分为三种:本地仓库、私服、中央仓库。
  • 如果你在项目里面配置的jar包,在本地服务器没有,那么就会到私服或者中央仓库里面查找,并且下载到本地仓库再引用到Maven项目里面。私服和中央仓库是需要你自己配置的,所以没配置就没有用。
本地仓库:位于程序员的电脑里面。通常项目依赖的jar包都会从另外两个仓库下载到本地才能被项目引用。
私服:公司或者开发小组维护的一个私人服务器。里面存储着需要的jar包。如私人封装的商业jar包。
中央仓库:一般是一些专业的组织维护着全世界的开源jar包。(通常是很多很多TB或者PB,这种数量级别的。)
总结:依赖管理帮你减少了项目的总体积,只需要在项目的xml里面配置要依赖的jar包就能够引入jar包到项目里面。也就是说以后我们再也不用到处找需要的jar包了,我们需要jar包时,要做的只是在项目的xml里面配置,并且只需要配置核心的jar包。当然你还要想如果本地仓库里面没有jar包时,该怎么办对吧,所以通常我们还会配置私服仓库或者中央仓库。

寻找jar包的顺序是:本地仓库->私服->中央仓库。
但是私服和中央仓库必须是你配置了才这样查找,如果没有配置私服或者中央仓库,那么就会是这种顺序:本地仓库->默认中央仓库(默认中央仓库需要翻墙,否则下载不了)。

这里写图片描述




jar包的坐标

很重要的概念,这就是为什么我们在xml里面配置就能够找到需要的jar包。

要找到一个jar包就需要一个坐标。坐标组成为:【公司网站的倒序】+【项目名称】+【项目版本号】

那么用什么来表达着三个东西呢??

groupId:公司网站倒序或者公司名称+总项目名称
artifactId:总项目名称或者子项目名称
version:项目版本号

通常我们在项目的xml里面配置需要的jar包时是这么配置的:

<!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
<dependency>
    <groupId>org.springframework</groupId><!-- 公司网站倒序 -->
    <artifactId>spring-beans</artifactId><!-- 子项目名称 -->
    <version>5.0.0.M5</version><!-- 版本号 -->
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-core -->
<dependency>
    <groupId>org.apache.struts</groupId><!-- 公司网站倒序+总项目名称 -->
    <artifactId>struts2-core</artifactId><!-- 子项目名称 -->
    <version>2.5.10.1</version><!-- 版本号 -->
</dependency>

<dependency>
  <groupId>cn.domarvel</groupId><!-- 公司网站倒序 -->
  <artifactId>blogforyouprx</artifactId><!-- 总项目名称 -->
  <version>1.0-SNAPSHOT</version><!-- 版本号,SNAPSHOT表示还处于开发中,不稳定版 -->
</dependency>

再来看张图:

这里写图片描述



配置仓库:




配置本地仓库

到conf里面找到settings.xml

找到<localRepository>

配置如:<localRepository>绝对路径</localRepository>

这里写图片描述

这里写图片描述

这里写图片描述




配置中央仓库

这里写图片描述


害怕你不知道,要一个一个的打,我还是贴出来吧。

<mirrors>  
	<!-- <mirror>  
      <id>CN</id>  
      <name>OSChina Central</name>                                                                                                                         
      <url>http://maven.oschina.net/content/groups/public/</url>  
      <mirrorOf>central</mirrorOf>  
    </mirror>  -->
	<mirror>
		<id>alimaven</id>
		<name>aliyun maven</name>
		<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
		<!--<mirrorOf>central</mirrorOf> -->
		<mirrorOf>central</mirrorOf>
	</mirror>
</mirrors>  

把本地仓库配置好,中央仓库配置好后,我们就可以开始新建Maven项目了。

本地仓库就是一个空文件夹,就是因为是空文件夹,所以我们需要配置中央仓库。



Maven对项目结构的规范:


比如我通过Maven创建一个JavaWeb项目:

环境:Eclipse(和IDEA一样的,没什么太大的区别)

一步一步来:

在Eclipse中配置好Maven,我们才可以新建项目。

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述



好了,到了这里我们就可以正式创建项目了:

这里写图片描述



在Eclipse中,我们一般勾选上,以跳过通过快速原型构建项目。在IDEA中要选择快速原型构建。

快速原型按照下面的规则选:

这里写图片描述

在Eclipse中,我们不需要快速原型构建,所以我们勾上。否则会出现很大块的项目目录都不完整。

这里写图片描述

这里写图片描述

这里写图片描述

报错原因是缺少web.xml文件,因为我们是创建的JavaWeb项目。

添加web.xml可以手动创建也可以:

这里写图片描述

创建后的目录:

这里写图片描述



认识Maven的规范目录结构

在这里插入图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述


可以看到,Maven对项目的结构进行了规范,细分了什么目录放什么文件。



版权声明:本文为Marvel__Dead原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。