maven

本文详细介绍了Maven的用途、好处及其如何实现这些好处,包括依赖管理和项目构建。Maven通过命令行操作实现项目生命周期的各个阶段,如清理、编译、测试、打包和部署。此外,文章还讲述了Maven的安装步骤,配置本地仓库,以及标准目录结构。同时,提供了在IDEA中配置Maven的指导,包括环境变量设置和常用命令。最后,通过一个整合Servlet的例子展示了Maven在实际项目中的应用。
摘要由CSDN通过智能技术生成

一、基础

Maven是Apache公司开源项目,是项目构建工具,用来依赖管理

1、maven的好处

(1)同样的代码实现的功能都一样,maven开发的大小小于没有用maven开发的。可以推断出maven项目中一定没有jar包,没有jar包的maven项目怎么运行?(10个ssh项目,不需要把四十个jar包拷贝10份,只需要把坐标信息拷贝十份,或者把一个jar包信息放到一个工程里面,另外一个工程去继承它),maven找jar包的方式如下:

 2、maven的好处如何实现

maven的两大核心:

依赖管理:对jar包管理过程

项目构建:项目编码完成后,对项目进行编译、测试、打包、部署一系列的操作都可以通过命令来实现,每一步操作都对应一个命令

通过maven命令将web项目发布到tomcat

 3、maven的安装、配置本地仓库

maven程序安装前提:maven程序java开发,他的运行以来jdk

(1)maven的下载安装

(2)解压到本地磁盘

(3)配置环境变量:

jdk的环境变量:JAVA_HOME

配置到bin目录的上一级

补充:

Java -version 查看java版本

mvn -v 查看本地maven环境的命令

(4)配置本地仓库

a、仓库类型

先去本地仓库找,如果找不到就去私服,前提是连接了私服;还是不行可以去中央仓库,但是中央仓库需要访问外网

 b、配置本地仓库

b1、找到jar包仓库压缩包

b2、解压到本地磁盘

b3、配置本地仓库,让maven程序知道仓库在哪

 4、maven项目标准目录结构

每一个maven项目都必须有一个pom.xml文件

src下有main(主文件:项目需要的)和test(测试文件:单元测试)两个项目

main 下面包含:java,resource(存储一些配置文件),webapp(存放页面的一些素材jsp,web-inf等)

倒入maven项目:

5、maven的常用命令(应用):基于项目构建

(1)mvn clean:清理:maven也可以clean:把项目根目录下的target目录清除掉,其实就是清除掉.class文件;也是调用jar包

eclipse中自带的clean,会把之前生成的class文件clean掉,再重新编译一份

tomcat的clean,

clean的是tomcat目录下的 

(2)mvn compile:编译 将.java文件编译之后会生成.class文件,编译也是调用jar包

(3) mvn test :将项目根目录下src/test/java目录下的单元测试类都会执行.执行单元测试:执行单元测试的时候也进行了编译 ;单元测试的类名有要求:xxxTest.java

(4)mvn package :打包项目根目录下target目录,web项目-war包;java项目-jar包

以前打包的两种当时:

 a、wab项目,需要导出war包(放到tomcat下运行):项目-右键-导出-war包

b、导出jar包,右键-export-jar

现在 maven的方式:web项目-war包;java项目-jar包

可以把工具类打出一个本地包,形成一个仓库,其他的需要使用的地方去这个本地仓库拿;修改也只需要修改这个本地仓库的包,再发布即可

(5)mvn install:解决本地多个项目公用一个jar包

打包到本地仓库

(6)、maven项目的生命周期

在maven中存在“三套”生命周期,每一套生命周期都是相互独立、互不影响的;在同一套生命周期内,执行后面的命令,前面的操作都会执行.

CleanLifeCycle:清理生命周期

        包含clean命令

defaultLifeCycle:默认生命周期

        包含compile、test、install、pachage、deploy

siteLifeCycle:站点生命周期

        包含site,描述项目使用了哪些生命周期

6、配置idea中基本环境-包含maven

(1)安装xcode

xcode-select --install 

(2)安装homebrew

通常情况下我们选择使用brew作为macOS上的包依赖管理工具,安装brew请在shell中执行

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

在安装完成brew之后,我们可以可以随时通过brew install命令来安装各式各样的软件包。

TIP

Homebrew的源仓库是托管在Github上的Git仓库,由于网络问题可能安装较慢或者失败,遇到失败请重试多次。目前国内镜像源还存在一些问题,造成找不到依赖,建议尽可能使用官方源。

若homebrew使用过程中出现找不到依赖的情况,请检查Homebrew是否成功安装。特别是检查/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core目录是否存在,内容是否为空或者只有.git文件夹,如果是的话,把/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core整体删除,并重新运行脚本安装。

(3)安装Ohmyzsh

目前macOS系统中默认使用zsh作为shell,Oh-my-zsh是一个zsh的扩展工具箱,可以让的你的shell功能更加强大,推荐安装。要安装Oh-my-zsh,可以运行下面的命令:

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

(4)安装JDK

如果你的系统还没有安装过JDK,请先安装。请使用我们推荐的JDK(openjdk-11)版本,下载地址为:

Apple M1芯片的macOS可选使用以下aarch64架构的JDK:

安装完成后,执行下列命令配置JAVA_HOME环境变量,并确认输出的JAVA_HOME指向JDK11,以便固定使用此版本的JDK。或者选择手工进行配置

export JAVA_HOME=$(/usr/libexec/java_home)
echo $JAVA_HOME
# 请注意和你shell对应的文件是否存在,不存在是不会写入的。如果不存在,可以先手工创建一个,macOS下默认的shell是zsh,如果你使用的是zsh,可以只配置.zshrc文件
test -r ~/.bash_profile && echo "export JAVA_HOME=$JAVA_HOME" >>~/.bash_profile
test -r ~/.profile && echo "export JAVA_HOME=$JAVA_HOME" >>~/.profile
test -r ~/.zshrc && echo "export JAVA_HOME=$JAVA_HOME" >>~/.zshrc

(5)安装Maven

如果你的系统没有安装Maven,可通过brew直接完成安装:

brew install maven

由于某些项目体量很大,需要解析大量的依赖,为了防止Maven内存不足问题的出现,可以通过以下命令增加环境变量配置:

# 请注意和你shell对应的文件是否存在,不存在是不会写入的。如果不存在,可以先手工创建一个,macOS下默认的shell是zsh,如果你使用的是zsh,可以只配置.zshrc文件
test -r ~/.bash_profile && echo 'export MAVEN_OPTS="$MAVEN_OPTS -Xmx4g"' >>~/.bash_profile
test -r ~/.profile && echo 'export MAVEN_OPTS="$MAVEN_OPTS -Xmx4g"' >>~/.profile
test -r ~/.zshrc && echo 'export MAVEN_OPTS="$MAVEN_OPTS -Xmx4g"' >>~/.zshrc

安装完成后,需要对Maven进行配置

# 确保.m2文件夹已创建
mkdir -p ~/.m2/

# 检查是否存在之前的 settings.xml 文件,有的话先备份它,好习惯要养成
test -r ~/.m2/settings.xml && cp ~/.m2/settings.xml ~/.m2/settings.xml.$(date '+%Y%m%d').bak
  
# 打开自己存放代码的目录,如 ~/Develop,将 kuaishou-build-tools 工程 clone 到本地,若本地已经存在则省略这步
cd ~/Develop # !!这里替换成你自己的存放代码的目录!!
git clone --depth=1 代码目录git地址
  
# 进入  代码目录,并将其更新到最新版
cd 代码目录
git pull --rebase
  
# 建立软链
# 注意!这里的路径必须要用绝对路径!因为即使路径不存在也可以成功的创建软链!感谢 @孙式松 同学的实践经验!
# 一定!一定!一定!要进入 正确的代码目录 目录再执行下面的命令!99.9% 的异常都是软链创建错了!!!
ln -fsv $(pwd)/src/main/resources/settings.xml ~/.m2/settings.xml
  
# 确认软链建立是否正确
ll ~/.m2

(6)配置安装idea

a、下载

b、配置

全局配置说明

如果需要配置能在所有项目中生效,则应从 File | Other Settings | Preferences For New Projects(老版本叫 Default Settings) 进入配置
而不是通过 Preferences 菜单进入(Preferences中的配置只对当前项目生效)。

这个问题经常会被忽略,直到建立第二项目的时候发现配置又要重新配置一遍。

大写加粗注意:由于IDEA某些版本似乎有问题,导致该默认设置有时候是不生效的,在我们调查清楚具体原因前,请大家在创建/导入完新项目后也确认下配置是否有错误的、没生效的或者不符合预期的。

必需配置

代码签名配置

Editor | File and Code Templates | Includes | File Header (快捷搜索词:file header),设置默认的 Java 代码签名

/**
 * @author yourname <yourname@xx.com>
 * Created on ${YEAR}-${MONTH}-${DAY}
 */

Maven配置

Preferences | Build, Execution, Deployment | Build Tools | Maven (快捷搜索词:maven)

勾选 Always update snapshots,避免因为snapshot更新不及时导致编译不过

现在项目引入包太多, 所以要把以下这个参数:VM options for importer:-Xmx2000m,也设置下, 要不会看到import的包会飘红,注意:这里最好一次调成 -Xmx5000m 否则还是会遇到各种导入飘红的情况。

编译堆内存

默认的已经不能满足我们了,需要调大一些

Preferences | Build, Execution, Deployment | Compiler(快捷搜索词:compiler)

Build process heap size (Mbytes): 2000

Java8 parameters设置 (Required)

Preferences | Build, Execution, Deployment | Compiler | Java Compiler | Javac Options | Additional Command line parameters(快捷搜索词:javac)

填上下面这个

-parameters

此项如果不设置,某些依赖参数名的 AOP 在 IDEA 下会不起作用

二、案例

1、maven整合servlet(package选择war)

(1)new-project-maven-

groupId:公司名称(公司域名的倒序)

artifactId:项目名称()

version:版本

 package:打包方式

此时会报错,确实web.xml文件,解决方式,手动增加这个文件,在webapp下面增加目录WEB-INF,在该目录下增加文件web.xml,将其他位置web.xml文件中的内容拷贝到该文件即可 

 pom.xml中添加插件(maven会根据pom.xml中的配置信息来编译,如果创建好的web项目提示pom文件的版本太低,则右键-maven-update即可)

(2)创建servlet,servlet编译报错.原因:确实servlet-api-xx.jar包

解决方式:添加jar包到pom.xml中

查看项目的依赖关系

2、依赖范围(了解)

 

proviced:编译时有效,运行时(部署到tomcat)时不再需要

添加依赖范围:默认是compile,默认编译运行测试都需要 

如果将不需要部署的(servlet-api.jar)设置为compile,在打包后就包含了servlet-api.jar,war部署到tomcat跟tomcat中存在servlet-api.jar冲突,可以将其改为provided的形式就可以解决这个问题

eg:

 

mvn tomcat: run 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【***.jar Maven依赖信息(可用于项目pom.xml).txt】 Gradle依赖:【***.jar Gradle依赖信息(可用于项目build.gradle).txt】 源代码下载地址:【***-sources.jar下载地址(官方地址+国内镜像地址).txt】 # 本文件关键字: 中文-英文对照文档,中英对照文档,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【***.jar中文文档.zip】,再解压其中的 【***-javadoc-API文档-中文(简体)版.zip】,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·本文档为双语同时展示,一行原文、一行译文,可逐行对照,避免了原文/译文来回切换的麻烦; ·有原文可参照,不再担心翻译偏差误导; ·边学技术、边学英语。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

xuruhua

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

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

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

打赏作者

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

抵扣说明:

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

余额充值