Maven学习 - Maven的认识与学习

Maven的认识与学习

1、什么是 Maven

  • Maven 是 Apache 下的一款开源软件,是用 java 开发的;
  • Maven 是一款项目构建工具,帮助程序员进行项目的构建;
  • 项目构建工具用于帮助程序员完成一些辅助操作,如:创建目录、代码编译、代码测试、导包…
  • 常见的构建方式:
    • Ant,也是 Apache下的一款开源软件;
    • Maven 换一种方式去管理项目

2、使用 Maven 后的变化

  • 项目结构不同了

    项目根路径

    |- src

    ​ |- main

    ​ |- java:存放java代码,不识别配置文件

    ​ |- resources:存放配置文件,不识别java代码

    ​ |- webapp:存放前端页面相关

    ​ |- test

    ​ |- java:存放测试java代码, 不识别配置文件

    ​ |- resources: 存放测试用配置文件, 不识别java代码

  • 包管理方式不同了

    • maven中通过仓库(Repository)的概念对包进行统一管理.
      • 中央仓库(Central Repository), 官方维护, 存放所有相关的jar包(包含各个版本)
      • 本地仓库(Local Repository), maven项目都是从本地仓库加载jar包的.
      • 镜像仓库(Mirror Repository), 国内有能力的组织(机构)搭建的仓库, 这个仓库就是将中央仓库中的所有内容复制了一份存起来.
    • jar包的定位: (坐标)由三部分构成
      • GroupId: 一般是逆向公司域名
      • ArtifactId: 一般是项目(jar)名
      • Version: 版本号
  • 项目之间的关系不同了

    • 依赖:一个项目用到了另一个项目的功能;
    • 继承:两个项目之间是父子关系;
    • 聚合:前提是必须先有继承关系, 在继承关系的基础上又有更进一步的关系;

3、Maven 的安装和配置

解压即可使用, 需要在使用前修改conf/setting.xml配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <!-- 本地仓库 -->
  <localRepository>E:/Repository</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>

  <profiles>
	<!-- 配置jdk版本 -->
	<profile>
		<id>jdk-1.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>
</settings>

4、Maven 工程类型

  • Maven 有三种工程类型:
  1. jar:java工程,项目最终被打包成jar包;
  2. war:web工程,项目最终被打包成war包;
  3. pom:逻辑工程, 父工程必须是pom类型的工厂. pom工程中不写java代码, 值用于进行子工程的管理.
  • pom 概念:

    pom: Project Object Model, 在Maven中, 一个Project也可以被理解为一个Object. 在Maven工程中, 会有一个配置文件叫pom.xml, 该文件用来配置管理当前项目依赖的所有jar包.

  • maven坐标查询网站

    https://mvnrepository.com/
    https://maven.aliyun.com/mvn/search

  • war 项目注意事项:

    项目创建时需要指定模板,创建成功后,需要自己补全目录结构;

    在这里插入图片描述

    在这里插入图片描述

5、Maven 工程间的关系

  • 依赖

    假设两个工程A和B, A当前需要使用B的功能, 我们就说A依赖B. 依赖关系是一个比较简单的关系. 依赖关系只需要通过在pom文件中指定坐标即可实现.

  • 继承

    假设两个工程A和B, B工程是在A工程基础上做的扩展. 此时, B工程继承了A工程. 继承是比依赖更紧密的一种关系. 要求父工程必须是一个pom工程. 在继承关系中, 子工程明确父工程, 但是父工程不明确子工程.

  • 聚合(重点)

    多个Model共同组成一个Project. 对外看起来是一个工程. 必须先由继承关系. 在聚合工程中, 是一个双向的关系.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值