栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

maven

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

maven

一、基础

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)版本,下载地址为:

  • Adopt OpenJDK 11.0.3:https://soft.corp.kuaishou.com/ios/OpenJDK11U-jdk_x64_mac_hotspot_11.0.3_7.pkg

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

  • OpenJDK(Zulu build) 11.0.9.1+1 https://cdn.azul.com/zulu/bin/zulu11.43.1021-ca-jdk11.0.9.1-macosx_aarch64.dmg

安装完成后,执行下列命令配置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 代码签名

 

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 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/284822.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号