背景
因为公司业务不断发展壮大需要紧靠大厂吸收更多更优质的人才,众所周知对于使用java是个不错的选择,单从语言的社区生态活跃度和语言工具的键壮性都可以秒杀其他语言,近一年来技术中心应用Java重构业务核心链路的服务迫在眉睫,所以我就踏入学习Java语言的不归路,从基础知识学习再到应用到日常项目中都有有所成长,学习一门语言最好方式是不断去应用它,不断遇到问题不断解决问题。
在此值得一提的是学习Java再到应用到项目时必须得学会并且能正确项目构建神器——Maven,这玩意必须得弄清楚,不然你再构建项目时你得心态会崩溃,简单说Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。目前看来Maven有以下主要功能
项目构建:解决项目目录规范化的问题,在文档和代码生成,代码的编译,测试和打包在不同的环境使用不同的配置文件。可以到网上了解Maven 标准目录结构。
依赖管理:Java最大的优势是整个生态中无数的框架和API,我们项目都会依赖着其他的jar包并且需要保持最新的状态,Maven可以自动帮我们做依赖管理,这点类似PHP语言的composer,Python 的 pip 差不多,都可以帮你下载第三方包和解决项目依赖的问题等。
方便集成:能够直接在idea集成中使用,大大方便我们开发效率。
安装
Maven 是一个基于 Java 因为工具,所以要做的第一件事情就是安装 JDK。所以请使用 java -version 确认是否已经安装了 JDK。本案例以macOS为例
检查Java
系统要求
项目
要求
JDK
Maven 3.3 要求 JDK 1.7 或以上
Maven 3.2 要求 JDK 1.6 或以上
Maven 3.0/3.1 要求 JDK 1.5 或以上
Maven 安装
第一步:下载maven
Maven 官网下载地址:http://maven.apache.org/download.cgi
对于初学者来说,不清楚选择哪种安装包,这里我给大家介绍介绍一下,这些规则适用大部分安装包下载,一般开源软件安装都会提供二进制文件和源文件,你可以到node官网看看都差不多的。
- bin(binary)由源文件编译后的二进制文件,可以直接下载放在指定目录后开箱即用
- src(source)是软件源文件,需要通过指定工具进行编译后才能使用,但定制化很强按需编译
- tar.gz 压缩格式适用于 Unix(Mac/Linux) 操作系统,zip 适用于 Windows 操作系统
下载apache-maven-3.8.4-bin.tar.gz
第二步:下载安装包
作者将解压文件目录统一放在 /Users/jackin/Documents/local/apache-maven-3.8.4 按照个人习惯即可
- bin:该目录包含了mvn运行的脚本,这些脚本用来配置Java命令,准备好classpath和相关的Java系统属性,然后执行Java命令。其中mvn是基于UNIX平台的shell脚本,mvn.bat是基于Windows平台的bat脚本。在命令行输入任何一条mvn命令时,实际上就是在调用这些脚本。该目录还包含了mvnDebug和mvnDebug.bat两个文件,同样,前者是UNIX平台的shell脚本,后者是Windows平台的bat脚本。
那么mvn和 mvnDebug有什么区别和关系呢?打开文件我们就可以看到,两者基本是一样的,只是mvnDebug多了一条MAVENDEBUGOPTS配置,其作用就是在运行Maven时开启 debug,以便调试Maven本身。此外,该目录还包含m2.conf文件,这是classworlds的配置文件。
- boot:该目录只包含一个文件,以maven3.0为例,该文件为plexus-classworlds-2.2.3.jar。plexus-classworlds是一个类加载器框架,相对于默认的java类加载器,它提供了更丰富的语法以方便配置,Maven使用该框架加载自己的类库。对于一般的Maven用户来说,不必关心该文件。
- conf:该目录包含了一个非常重要的文件settings.xml。直接修改该文件,就能在机器上全局地定制Maven的行为。一般情况下,我们更偏向于复制该文件至~/.m2/目录下(~表示用户目录),然后修改该文件,在用户范围定制Maven的行为。后面将会多次提到settings.xml,并逐步分析其中的各个元素。
- lib:该目录包含了所有Maven运行时需要的Java类库,Maven 本身是分模块开发的因此用户能看到诸如maven-core-3.0.jar、maven-model-3.0.jar 之类的文件。此外。这里还包含一些Maven用到的第三方依赖,如common-cli-1.2.jar、google-collection1.0.jar等。对于Maven2来说,该目录只包含一个如maven-22.1-uberjar的文件。原本各为独立JAR文件的Maven模块和第三方类库都被拆解后重新合并到了这个 JAR文件中。可以说,lib目录就是真正的Maven。关于该文件,还有一点值得一提的是,用户可以在这个目录中找到Maven内置的超级POM。
- LICENSE.txt:记录了Maven使用的软件许可证Apache License Version 2.0
- NOTICE.txt:记录了Maven包含的第三方软件;而READMEtxt则包含了Maven的简要介绍,包括安装需求及如何安装的简要指令等。
第三步:配置环境变量
打开终端,输入 vim ~/.bash_profile 命令打开 bash_profile 文件
在文件中添加如下代码:
export MAVEN_HOME=~/Documents/local/apache-maven-3.8.4
export PATH=${PATH}:${MAVEN_HOME}/bin
作者结合java配置完整内容如下,以下不归本文介绍内容,可以忽略的
#JAVA配置
export JAVA_8_HOME=/Library/java/JavaVirtualMachines/jdk1.8.0_321.jdk/Contents/Home
export JAVA_11_HOME=/Library/java/JavaVirtualMachines/jdk-11.0.14.jdk/Contents/Home
# 默认JDK为JDK
export JAVA_HOME=$JAVA_8_HOME
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export MAVEN_HOME=~/Documents/local/apache-maven-3.8.4
export NODE_HOME=~/Documents/local/node-v16.13.2-darwin-x64
export RUBY_HOME=~/Documents/local/ruby
export CATALINA_HOME=~/Documents/local/apache-tomcat-8.5.56-src
export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin:$MAVEN_HOME/bin:$NODE_HOME/bin:/usr/local/bin:$RUBY_HOME/bin
export LC_ALL=en_US.UTF-8
alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
alias jdk11="export JAVA_HOME=$JAVA_11_HOME"
保存文件,并运行如下命令使环境变量生效:
source ~/.bash_profile
第四步,查看配置是否生效
输入 mvn -v 命令,如果输出以下内容,表示配置成功:
到此为止,预祝你们能安装成功,下篇文章给大家介绍"Maven配置文件pom.xml大盘点"让大家清楚给节点内容,期待“就是这篇文章说清楚了Maven配置文件pom.xml”
,