解析maven的用法和几个常用的命令(推荐)

 更新时间:2020年07月17日 10:16:50   作者:kongmin_123  
maven最大的作用就是用于对项目中jar包依赖的统一管理。这篇文章主要介绍了maven的用法和几个常用的命令,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

做项目时使用maven构建项目已经是现在的流行做法了。那么maven的作用是什么呢?maven中的几个常用的命令都有什么用?下面我们来看一下。

maven最大的作用就是用于对项目中jar包依赖的统一管理。

通常项目中如果不使用maven的话,项目中用到的jar包需要自己下载,然后放到项目的lib目录,比较麻烦。

如果使用maven构建项目,项目中就会有有一个pom文件,该pom文件的作用就是对项目中的所有jar包依赖进行统一管理,如果想要使用哪个依赖只需要在pom文件中引入相关的依赖就可以,然后maven就会自动从远程仓库下载jar包到本地仓库。如果一下项目中需要引入另一个项目的包,也可以由maven打包加入该项目的依赖。

使用maven仓库的话需要从网上下载maven的包,比如“apache-maven-3.5.4-bin.tar”,下载完成之后解压,在解压的文件夹中的conf目录下的settings.xml文件夹下就可以配置maven远程仓库和本地仓库的地址。配置了远程仓库的地址之后就可以从远程仓库下载jar包到本地仓库了。

默认的远程仓库地址是国外的镜像,下载jar包的话比较慢,可以使用国内镜像提高下载效率。

//国内镜像
<mirror>
<id>CN</id>
<name>OSChina Central</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>

本地仓库的地址也可以在settings.xml文件中配置。

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
 <!-- localRepository
 | The path to the local repository maven will use to store artifacts.
 |
 | Default: ${user.home}/.m2/repository
 <localRepository>/path/to/local/repo</localRepository>
 -->

默认的本地仓库地址是${user.home}/.m2/repository,如果是mac电脑的话默认地址就是/Users/本机用户名/.m2。也可以修改本地仓库地址为其他的地址。

远程仓库和本地仓库配置好了,怎么在项目中使用maven呢?以Intellij IDEA为例。

首先新建项目的时候要构建成maven项目。如果是导入项目导入的类型也可以选择是maven项目,或者先倒入,等其他的都配置好了再把项目转成maven项目。

然后配置maven,打开Intellij IDEA的Preferences。

点击Build,Execution,Deployment中的maven,就可以对项目中使用到的maven进行配置。

其中主要有三项需要配置。

Maven home direcroty:地址是下载的解压之后的maven压缩包。

User settings file:setting.xml所在的位置,通常是上面的Maven home direcroty的子目录。

Local repository:本地仓库的地址。

也可以在新建maven项目的时候在项目配置中配置这些东西。

配置好了之后项目中就可以使用maven了。

以前没有使用maven的时候项目之间的jar包都是独立的,两个项目之间即使有重复的jar包也不能实现复用,有了maven之后,多个项目可以共享同一个本地仓库,所有的项目的jar包都依赖同一个本地仓库,需要哪些依赖直接通过pom.xml指定就可以从中央仓库下载了,方便又实用。

除此之外,maven还有一些常用的命令,更加方便项目的管理。下面介绍一些常用的命令及其作用。

(1)maven clean。

对项目进行清理,清理的过程中会删除删除target目录下编译的内容。

(2)maven compile。

编译项目源代码。

(3)maven test。

对项目的运行测试。

(4)maven packet。

可以打包后的文件存放到项目的 target 目录下,打包好的文件通常都是编译后生成的class文件。

(4)maven install。

在本地仓库生成仓库的安装包可以供其他项目引用,同时打包后的文件存放到项目的 target 目录下。

对项目打包有三种打包方式,pom打包,jar包和war包。打包方式在pom.xml文件中进行指定。

pom工程一般是聚合工程,代表父工程,负责管理jar包的版本、maven插件的版本等,主要做统一的依赖管理。

jar包就是普通的打包方式,可以是pom工程的子工程。

war包的都是web工程,是可以直接放到tomcat下运行的工程。

打成pom包和jar包的工程在新建的时候可以不需要制定maven项目的原型,达成war包的项目需要制定maven项目原型,指定的原型通常为maven-archetype-webapp,代表web项目。

其中最常用的就是maven clean和maven install。

maven在项目中还是很有用的。关于maven的基本用法就介绍到这里。

总结

到此这篇关于maven的用法和几个常用的命令的文章就介绍到这了,更多相关maven用法和常用命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java中volatile不能保证线程安全(实例讲解)

    java中volatile不能保证线程安全(实例讲解)

    下面小编就为大家带来一篇java中volatile不能保证线程安全(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Java解决线程的不安全问题之volatile关键字详解

    Java解决线程的不安全问题之volatile关键字详解

    这篇文章主要介绍了Java解决线程的不安全问题之volatile关键字详解,可见性指一个线程对共享变量值的修改,能够及时地被其他线程看到,而 volatile 关键字就保证内存的可见性,需要的朋友可以参考下
    2023-08-08
  • Java SE之了解泛型

    Java SE之了解泛型

    这篇文章主要介绍了Java SE之了解泛型,文章内容详细,简单易懂,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2023-01-01
  • SpringBoot+JWT实现单点登录完美解决方案

    SpringBoot+JWT实现单点登录完美解决方案

    单点登录是一种统一认证和授权机制,指在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的系统,不需要重新登录验证,这篇文章主要介绍了SpringBoot+JWT实现单点登录解决方案,需要的朋友可以参考下
    2023-07-07
  • Mybatis-plus出现数据库id很大或者为负数的解决

    Mybatis-plus出现数据库id很大或者为负数的解决

    本文主要介绍了Mybatis-plus出现数据库id很大或者为负数的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • SpringBoot应用线上重启脚本的命令详解

    SpringBoot应用线上重启脚本的命令详解

    这篇文章主要介绍了SpringBoot应用线上重启脚本,通过查找应用进程PID,杀死应用进程PID,运行启动脚本,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • Spring Data Jpa框架最佳实践示例

    Spring Data Jpa框架最佳实践示例

    这篇文章主要为大家介绍了Spring Data Jpa框架最佳实践示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-02-02
  • 为什么说HashMap线程不安全

    为什么说HashMap线程不安全

    本文主要介绍了为什么说HashMap线程不安全,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Java内存模型中的虚拟机栈原理分析

    Java内存模型中的虚拟机栈原理分析

    这篇文章主要介绍了Java内存模型中的虚拟机栈原理分析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • 全解史上最快的JOSN解析库alibaba Fastjson

    全解史上最快的JOSN解析库alibaba Fastjson

    这篇文章主要介绍了史上最快的JOSN解析库alibaba Fastjson,对FastJson感兴趣的同学,一定要看一下
    2021-04-04

最新评论