Maven

简介

Maven的主要作用是进行项目管理以及统一维护jar包

Maven的管理的项目需要有着相同的项目结构

  • 有一个pom.xml 用于维护当前项目都使用了哪些jar包
  • 所有的java代码都放在src/main/java的下面
  • 所用的测试代码都放在src/test/java的下面

统一维护jar包

如果含有不同的项目,这三个项目的结构都不是maven的风格,就会各自维护一套jar包,而这些jar包是相同的,而maven的项目,会把这些jar包都放在“仓库”里面,然后哪个项目需要用到哪个jar包,就只需要给出jar包的名称还有版本号。

配置

现在maven的最新版本为3.8.3这一版本,下载binary的这一个zip文件就可以了。Mac下 需要下载apache-maven-xxxx-bin.tar.gz 这个文件
(在使用mac 配置的时候,注意环境变量 export v=/Users 等号之间不能留有空格)

仓库

所谓的仓库就是用于存放项目需要的jar包的。maven采用的是一个仓库,多个项目,多个项目共享一个仓库。

仓库默认的位置

1
2
3
4
5
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>

修改仓库默认的保存位置

1
<localRepository>Users/gorge/java_jar</localRepository>

修改默认的下载路径

maven 会默认从maven官方提供的服务器下载jar包。
而官方服务器在国外,所以下载起来会比较慢,而且不稳定。
所以我们将下载路径设置为阿里云的。

1
2
3
4
5
6
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>

Eclipse上配置Maven

Mac版本的为: Eclipse ->Preferences
然后
在这里插入图片描述
然后点击Add -> Directory (这个为对应的maven的安装路径)
将已经安装好的maven添加进去就可以啦!

设置仓库路径

这里我们要选择上面图中的User Setting 这个选项
,配置Global Settings 和 User Settings都使用我们上面的配置文件
然后在点击一下Reindex ,这个按钮确保我们的Local Repository 的配置为我们上面配置的仓库默认的保存位置 Users/gorge/java_jar

接下来在Eclipse中创建一个Maven的项目就可以了

Maven添加包

在Maven项目中找到pom.xml 文件,然后在jar包网站上jar包 找到自己要添加的jar包
在这里插入图片描述
将这个dependency添加到pom.xml文件的dependencies 中就可以啦!!记得点击保存。

Eclipse上创建java web项目

在这里插入图片描述
与前面创建java se项目不同的地方在于,这一步的时候我们要选择maven-archetype-webapp这个选项。
此时能得到的maven web 项目,不过有两个问题

  1. 没有java源代码目录
  2. index.jsp报错

    创建java 源代码目录

    在上一步的截图中可以发现,没有地方存放java源文件,这个时候就需要按照如下步骤做:
    右键项目->属性->Java Build Path->Libraries->选中JRE System Library->Edit->Workspace default JRE(jdk8)->Finish 就可以了

index.jsp 报错

这个报错 的原因是因为缺少servlet.jar包的支持,我们只需要按照上面导入jar包的步骤进行导入就可以了。

将项目部署到tomcat上面

与java web项目的操作是一样的,直接在项目上进行右键点击,然后Run As -> Run on Server 就可以了!

Maven的父子项目

通过 maven 可以创建父子-聚合项目。 所谓的父子项目,即有一个父项目,有多个子项目。
这些子项目,在业务逻辑上,都归纳在这个父项目下,并且一般来说,都会有重复的jar包共享。
所以常用的做法会把重复的 jar 包都放在父项目下进行依赖,那么子项目就无需再去依赖这些重复的 jar 包了。

首先,我们要先按照上述流程创建一个Maven Project 项目,这个项目是作为父项目的。

然后修改配置文件

主要是修改两部分的配置文件

  • 修改默认包
1
2
这里默认的是jar,我们应该修改为pom,这样才可以作为父项目存在
<packaging>pom</packaging>
  • 修改hutool jar 包的依赖,用于后来子项目里观察对其的调用
    需要在depend ices 中添加如下代码
    1
    2
    3
    4
    5
    <dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>4.3.1</version>
    </dependency>

修改 pom.xml 之后, 右键点击项目 -> Maven -> Update Project -> OK 进行更新。 否则项目会有红点~

创建子项目

接下来创建maven 子项目。 maven 子项目有叫做模块 module.
为了能够在 parentMavenProject 的基础上创建其子项目,首先右键点击 parentMavenProject, 然后点击 New -> Other -> Maven -Maven Module -> Next

子项目的pom.xml

可以看到其中有如下parent

1
2
3
4
5
<parent>
<groupId>cn.how2j</groupId>
<artifactId>parentMavenProject</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>

父项目的pom.xml

再次打开父项目的pom.xml, 会发现其多了一个

1
2
3
<modules>
<module>childMavenProject</module>
</modules>