专栏首页品茗ITWeb基础配置篇(二): Maven配置及使用

Web基础配置篇(二): Maven配置及使用

Web基础配置篇(二): Maven配置及使用

一、概述

Maven是一个软件开发管理工具,主要管理工作是:依赖管理,项目一键构建。

以前用过ant,很不方便,maven比较简单易用。

然后后面又来了个gradle,貌似比maven更好用,我这里不会,也不讲,就目前来说,maven的用户量还是比较大的。

**如果大家正在寻找一个java的学习环境,或者在开发中遇到困难,可以<a

href="https://jq.qq.com/?_wv=1027&k=52sgH1J"

target="_blank">

加入我们的java学习圈,点击即可加入

</a>

,共同学习,节约学习时间,减少很多在学习中遇到的难题。**

二、Maven配置

如果只是eclipse使用maven,就不需要配置maven了,eclipse自带maven插件。想要在命令行使用,需要单独配置maven。

2.1 下载

maven官方网站

先下载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包到远程仓库:

发布jar包到maven中央仓库(个人域名)

发布jar包到maven中央仓库(无个人域名)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Web基础配置篇(二): Maven配置及使用

    然后后面又来了个gradle,貌似比maven更好用,我这里不会,也不讲,就目前来说,maven的用户量还是比较大的。

    品茗IT
  • SpringBoot入门建站全系列(三十二)接入xxl-job分布式任务调度平台

    XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

    品茗IT
  • Spring和Redis整合详解

    Redis是一个开源(BSD许可)的内存数据结构存储,用作数据库,缓存和消息代理。

    品茗IT
  • Web基础配置篇(二): Maven配置及使用

    然后后面又来了个gradle,貌似比maven更好用,我这里不会,也不讲,就目前来说,maven的用户量还是比较大的。

    品茗IT
  • 只需五分钟-用Maven快速搭建Spring Cloud微服务

    如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135...

    java架构师
  • IDEA自带Maven Projects窗口打包项目报错

    試毅-思伟
  • Maven入门教程

    概念 Maven是什么 Maven 是一个项目管理工具。它负责管理项目开发过程中的几乎所有的东西。 版本 maven有自己的版本定义和规则 构建 maven支持...

    静默虚空
  • 创建maven项目失败的解决办法

    贪挽懒月
  • 搭建公司私有MAVEN仓库过程

    或者:https://sonatype-download.global.ssl.fastly.net/nexus/3/nexus-3.9.0-01-unix.t...

    ZhangXianSheng
  • Gradle打jar包如何上传到maven本地库

    前言 本篇教程偏向实战,程序猿直接copy代码加入到自己的项目中做简单的修修改改便可使用,而对于Gradle以及Maven不在此进行展开介绍,如有读者...

    互扯程序

扫码关注云+社区

领取腾讯云代金券