Web基础配置篇(二): Maven配置及使用
一、概述
Maven是一个软件开发管理工具,主要管理工作是:依赖管理,项目一键构建。
以前用过ant,很不方便,maven比较简单易用。
然后后面又来了个gradle,貌似比maven更好用,我这里不会,也不讲,就目前来说,maven的用户量还是比较大的。
项目地址:
品茗IT-同步发布
品茗IT 提供在线支持:
如果大家正在寻找一个java的学习环境,或者在开发中遇到困难,可以加入我们的java学习圈,点击即可加入,共同学习,节约学习时间,减少很多在学习中遇到的难题。
二、Maven配置
如果只是eclipse使用maven,就不需要配置maven了,eclipse自带maven插件。想要在命令行使用,需要单独配置maven。
2.1 下载
先下载maven,比如当前的maven版本是3.6.0。
http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.zip
解压下载文件:
Linux可以使用wget下载:
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz
2.2 Windows配置环境
配置maven的环境变量M2_HOME,例如我的地址是E:\DevSoft\maven\apache-maven-3.6.0:
配置Path:在Path中加入:%M2_HOME%\bin, 注意变量前后后的分号。
用mvn -v
或者mvn -version
测试:
PS C:\WINDOWS\system32> mvn -v
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
Maven home: E:\DevSoft\maven\apache-maven-3.6.0\bin\..
Java version: 1.8.0_151, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk1.8.0_151\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
PS C:\WINDOWS\system32>
2.3 Linux配置环境
下载maven到/usr/local下的maven目录,目录自己建,自己找。
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz
解压下载的apache-maven-3.6.0-bin.tar.gz
tar -xvf apache-maven-3.6.0-bin.tar.gz
配置环境变量,需要修改/etc/profile:vi /etc/profile
export MAVEN_HOME=/usr/local/maven/apache-maven-3.6.0
PATH=$MAVEN_HOME/bin:$PATH
刷新配置:source /etc/profile
用mvn -v
或者mvn -version
测试即可。
三、Maven使用
3.1 settings.xml
settings.xml对于maven来说相当于全局性的配置,用于所有的项目。在maven2中存在两个settings.xml:
一个位于maven2的安装目录conf下面,作为全局性配置。对于团队设置,保持一致的定义是关键,所以maven2/conf下面的settings.xml就作为团队共同的配置文件。保证所有的团队成员都拥有相同的配置。
另外一个settings.xml就作为本地配置。需要特殊的自定义设置,如用户信息等可以配置在这个文件中。默认的位置为:user.dir/.m2/settings.xml目录中({user.dir} 指windows 中的用户目录。
配置详情这里就不详说了,对于工作后的你来说,这个settings.xml一般都是从老员工那儿拷过来会比较好,或者你必须要配置,那就不是三言两语说的清了。
3.2 pom.xml
pom.xml主要描述了项目的maven坐标,依赖关系,开发者需要遵循的规则,缺陷管理系统,组织和licenses,以及其他所有的项目相关因素,是项目级别的配置文件.
这个文件里常用到下面几个概念:
-
groupId: 一般是域名倒写,其实是瞎写的,规范一点是这样的。
-
artifactId:一般是2级域名,其实是瞎写的,规范一点是这样的。
-
packaging: 打包成啥
-
dependencies:依赖的jar包。
-
parent: 父maven项目。
-
dependencyManagement:依赖的管理,一般用它来管理依赖,然后子项目在dependencies中依赖父pom管理的依赖的时候可以不写版本号。
-
build: 构建相关
-
modules: 模块管理使用,在父项目中定义子项目模块。
3.3 Eclipse使用Maven
eclipse里面,run as时候会出现maven操作。
一般来说,用不了那么多的,用Maven install和Maven clean已经够用了。
Maven install: 对项目进行编译、将项目打成war包并且发布到本地仓库。
Maven clean: 清除target目录下的之前打好的jar包或者是war包;
Maven build : 重新对该maven项目进行打包,这里需要手动的输入打包的命令 -X package
Maven build… : 对Maven build重新配置命令。
3.4 Maven命令行使用
命令行是没有 mvn build这个命令的。
只有mvn install 和 mvn package
-
mvn install 是将你打好的jar包安装到你的本地库中,一般没有设置过是在 用户目录下的 .m2\下面。
-
mvn package 只是将你的代码打包到输出目录,一般的是 target下面。
-
mvn deploy 可以将打包文件发布到远程仓库。
-
mvn clean package依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。
-
mvn clean install依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段。
-
mvn clean deploy依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段。
主要区别如下,
-
package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
-
install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库
-
deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
打包一个项目时,需要进入项目所在位置,然后和pom.xml同级使用命令,如下图。
本篇就只讲这么多了,这里只能算是一个大概,细节东西需要根据事实情况来分析,这里就不讲了。
这里有两篇文章介绍如何发布开源jar包到远程仓库:
快速构建项目
喜欢这篇文章么,喜欢就加入我们一起讨论Java Web吧!