maven安装笔记

maven 简介与安装

Maven 是一个项目管理和构建工具。Maven 提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven 使用标准的目录结构和默认构建生命周期。

在多个开发团队环境时,Maven 可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可重复使用,Maven 让开发人员的工作更轻松,同时创建报表,检查,构建和测试自动化设置。

maven 依赖查询:官网

注意:maven 中说说的依赖,即是我们平时使用的 Jar 包。
在这里插入图片描述

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.38</version>
</dependency>

中央仓库

下载 maven 工具 apache-maven-3.8.2 只需要简单配置 /conf/settings.xml 文件中的中央仓库和本地仓库位置即可,当本地仓库没有依赖包时,通过中央仓库下载。如下配置优先选择中国阿里云仓库,这样会加快依赖下载速度。

<mirrors>
    <mirror>
        <id>alimaven</id>
        <mirrorOf>central</mirrorOf>
        <name>aliyun maven</name>
        <url>https://maven.aliyun.com/nexus/content/repositories/central/</url>
    </mirror>
    <mirror>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>https://maven.aliyun.com/nexus/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
    <mirror>
        <id>central</id>
        <name>Maven Repository Switchboard</name>
        <url>https://repo1.maven.org/maven2/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
</mirrors>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c0OAbqBM-1653487099028)(assets/image-20220406230146383.png)]
如果想要 maven 下载的依赖不存放在用户目录的 .m2 文件夹下,可以修改本地仓库的位置。

<localRepository>D:/maven-dependcies</localRepository>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c9d6aYNH-1653487121956)(../assets\image-20220406230516097.png)]
注意:配置本地依赖存放位置 D:/maven-dependcies 必须存在,每个依赖下载到本地后会形成如下的目录和文件结构。
在这里插入图片描述
当有些依赖在 idea 中下载出错时,需要将对应的依赖版本目录删除对应的版本文件夹(如上:1.1)再重新导入即可。
在这里插入图片描述
在这里插入图片描述

maven 项目管理

创建 maven 项目时一般要选择项目骨架(archetype [ˈɑːkitaɪp]),我们常用的有如下两种,这两种分别对应我们前面所用的普通 java 项目和 web 项目。
在这里插入图片描述
选择骨架后,就是选择 maven,由于我们的 idea 自带一个 maven 所以需要修改 maven 为我们安装的 maven 。
在这里插入图片描述

groupIdcn.hx(包名)
artifactIdzy-web(项目名)
version1.0-SNAPSHOT(开发版本)

如下是 maven 的 web 项目结构,Java 项目没有 webapp。

src
    main        --->主模块
        java      ---->java代码
        resources    ---->配置文件
        webapp      ---->web页面
            WEB-INF   ---->java web的核心目录
  test          --->测试模块
    java        --->测试Java代码
    resources    --->测试资源代码
pom.xml ---->maven 依赖文件

常用依赖

jstl 插件:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

tomcat 依赖:在打包或编译时需要导入该依赖。

<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-jsp-api</artifactId>
    <version>8.0.28</version>
    <scope>provided</scope>
</dependency>

maven 常用操作

1.clean:清空缓存

2.package:打包项目

3.install:安装到本地仓库
在这里插入图片描述
如果出现 maven 编译和打包都没问题,但是 idea 编译报错类找不到。则是 idea 和 maven 没有使用同一个编译机制。
在这里插入图片描述
如果出现控制台打印中文乱码问题在 VM Options 增加参数 -Dfile.encoding=GB2312 即可解决中文乱码问题。

构建多模块应用

Maven多模块项目,适用于一些比较大的项目,通过合理的模块拆分,实现代码的复用,便于维护和管理。尤其是一些开源框架,也是采用多模块的方式,提供插件集成,用户可以根据需要配置指定的模块。创建多模块应用一般有如下几个步骤。

1.创建聚合模块

创建一个无骨架的项目作为聚合服务模块 mall。创建完成后指明它的打包类型 packaging 为 pom 聚合类型,并将该项目的 src 删除。并在其下方添加 modules 标签用于存放它的子模块,该处一般由 idea 维护。

<packaging>pom</packaging>
<modules>
</modules>

2.创建公共 common 子模块

公共子模块一般以项目名加上模块名方式命名,如:mall-common,该模块主要存放一些公用类和配置,一般使用 quickstart 方式。创建时 idea 自动会在该项目的 pom.xml 指定其 parent。当前项目的 groupId 默认会和父模块保持一致。idea 同时会在聚合模块的 modules 中自动注册该模块。

<parent>
    <artifactId>mall</artifactId>
    <groupId>cn.hx</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>

3.子模块之间相互依赖

创建多个模块后,模块之间需要相互依赖时只需要将依赖的模块导入依赖库即可。同时一些公用的依赖包如 mysql 连接驱动包等可以使用聚合模块进行导入,所有子模块自动可以

<dependencies>
        <dependency>
        <groupId>cn.hx</groupId>
        <artifactId>mall-common</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
.....
</dependencies>

4.公共依赖声明

一个项目有很多模块,每个模块都会用到一些公共的依赖。这些公共的依赖若交由各个模块独自管理,若每个模块同一个依赖的版本号不一致,会给项目的打包、开发和测试造成极大问题,会造成修改版本号时遍地开花的问题。使用 dependencyManagement 标签通常适用于多模块环境下定义一个 top module来专门管理公共依赖的情况下公共依赖声明。

若 dependencies 里的 dependency 自己没有声明 version 元素,那么 maven 就会到 depenManagement 里去找有没有该 artifactId 和 groupId 进行过版本声明,若存在,则继承它,若没有则报错,你必须为 dependency 声明一个 version

若 dependencies 中的 dependency 声明了version,则 dependencyManagement 中的声明无效

注意:所有声明在 dependencies 里的依赖都会自动引入,并默认被所有的子项目继承,dependencies 即使在子项目中不写该依赖项,那么子项目仍然会从父项目中继承该依赖, dependencyManagement 只是声明依赖的版本号,该依赖不会引入,因此子项目需要显示声明所需要引入的依赖,若不声明则不引入。

maven 安装额外依赖

在开发中有时我们需要在本地安装一些远程 maven 仓库中没有的 Jar 包。这时就需要安装相关依赖。

进入 maven 的 bin 目录打开 cmd 并使用如下命令安装 SQLserver 和 oralce 驱动包。

mvn install:install-file -Dfile=sqljdbc42.jar -Dpackaging=jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.2

mvn install:install-file -Dfile=ojdbc6.jar -Dpackaging=jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.0 

Oracle 的驱动包和 SQLserver 驱动包下载地址:下载

下载安装完成后在项目如下使用依赖。

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>sqljdbc4</artifactId>
    <version>4.2</version>
</dependency>
<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc6</artifactId>
    <version>11.0</version>
</dependency>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

抹泪的知更鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值