一、初步了解maven

Apache Maven是一个软件项目管理的综合工具。基于项目对象模型(POM)的概念,提供了帮助管理构建、文档、报告、依赖、发布等方法,Maven简化和标准化项目建设过程。处理编译,分配,文档,团队协作和其他任务的无缝连接。 Maven增加可重用性并负责建立相关的任务。

maven的好处在于可以将项目过程规范化、自动化、高效化以及强大的可扩展性,利用maven自身及其插件还可以获得代码检查报告、单元测试覆盖率、实现持续集成等等。

Maven的基本原理很简单,采用远程仓库和本地仓库以及一个核心的配置文件pom.xml,pom.xml中定义的jar文件从远程仓库下载到本地仓库,各个项目使用同一个本地仓库的jar,同一个版本的jar只需下载一次,而且避免每个应用都去拷贝jar。同时它采用了现在流行的插件体系架构,所以maven的核心非常的小,只有几兆大小的文件,在执行maven任务时,才会自动下载需要的插件。

作为一款项目管理工具,maven在项目管理方面的作用主要体现在以下几方面:

项目标准化:

Maven项目具有统一的项目结构,这个项目结构是参考业界的最佳实践而成,为后面使用统一的maven命令打下了基础,如测试mvn test、打包mvn package等,无需写一行脚本,就可以方便的实现众多功能。

文档和报告:

使用mvn site可以快速生成项目站点,apache很多开源项目站点都采用maven生成,会出现built by maven字样的图标。

类库管理:

类库管理是maven一个比较核心的功能,我们就需要将项目所依赖的类库加入到pom.xml中,那么maven会自动将依赖的类库下载到本地,并且下载的类库如果还依赖其他的类库,它也会自动下载过来,这样我们就不需要一个一个类库去下载了。

发布管理:

使用maven可以方便的进行项目发表管理。在项目开发到一定阶段,可以使用mvn package打包,它会自动先运行mvn test,跑所有的Test Case,只有全部通过才能正确打包。生成的war包(如果项目的packaging为war)在target目录下。这个 war包与使用ant脚本生成一样,但无需一行脚本,这也是maven对比ant的优势之一。使用mvn install将编译和打包好的文件发布到本地仓库中。使用mvn deploy在整合或者发布环境下执行,将最终版本的包拷贝到远程的repository。

二、maven目录结构

主要有bin,boot,conf,lib四个目录

bin目录:该目录包含了mvn运行的脚本,这些脚本用来配置java命令,准备好classpath和相关的Java系统属性,然后执行Java命令。

boot目录:该目录只包含一个文件,以maven3.3.9为例,该文件为plexus-classworlds-2.5.2.jar。plexus-classworlds是一个类加载器框架,相对于默认的java类加载器,它提供了更丰富的语法以方便配置,Maven使用该框架加载自己的类库。更多关于classworlds的信息请参考http://classworlds.codehaus.org/。对于一般的Maven用户来说,不必关心该文件。

conf目录:该目录包含了一个非常重要的文件settings.xml,Maven的核心配置文件。

lib目录:该目录包含了所有Maven运行时需要的Java类库,Maven本身是分模块开发的,因此用户能看到诸如mavn-core-3.3.9.jar、maven-model-3.3.9.jar之类的文件,此外这里还包含一些Maven用到的第三方依赖如commons-cli-1.2.jar、commons-lang-2.6.jar等等。

三、maven仓库介绍与本机仓库配置

maven的仓库只有两大类:

1.本地仓库

2.远程仓库,在远程仓库中又分成了3种:2.1 中央仓库   2.2 私服   2.3 其它公共库

本地仓库是指存在于我们本机的仓库,在我们加入依赖时候,首先会跑到我们的本地仓库去找,如果找不到则会跑到远程仓库中去找。对于依赖的包我们可以从这个地址进行搜索:http://mvnrepository.com/

远程仓库是指其他服务器上的仓库,包括全球中央仓库,公司内部的私服,又或者其他公司提供的公共库。后面会专门聊聊私服,公共库的话只是一个地址,大家会引用就行了。

Maven的本地仓库是用来存储所有项目的依赖关系(插件jar和其他文件,这些文件被Maven下载)到本地文件夹。很简单,当你建立一个Maven项目,所有相关文件将被存储在你的Maven本地仓库。

找到maven安装目录下的conf文件中的settings.xml文件,添加<localRepository>本机路径</localRepository>来设置本地仓库

如下:

四、maven常用命令

mvn clean:表示运行清理操作(会默认把target文件夹中的数据清理)。

mvn clean compile:表示先运行清理之后运行编译,会将代码编译到target文件夹中。

mvn clean test:运行清理和测试。

mvn clean package:运行清理和打包。

mvn clean install:运行清理和安装,会将打好的包安装到本地仓库中,以便其他的项目可以调用。

mvn clean deploy:运行清理和发布(发布到私服上面)。

(一)maven之——maven基础及本地仓库的配置的更多相关文章

  1. 1.Maven的安装以及本地仓库的配置

    安装: maven下载地址:http://maven.apache.org/release-notes-all.html 然后解压,配置环境变量   MAVEN_HOME,并添加到path中.验证是否 ...

  2. bat批处理文件启动Eclipse和ivy本地仓库的配置

    一.bat批处理文件启动Eclipse 所需文件: 1.eclipse 2.jre 3.startup-eclipse.bat 确保以上三个文件夹同级 startup-eclipse.bat: set ...

  3. 远程代码仓库URL地址变更后本地仓库的配置方法

    作者:荒原之梦 原文链接:http://zhaokaifeng.com/?p=556 今天修改了一个远程仓库的项目名称,导致Git仓库的地址发生了变化,Push代码时显示"Git仓库找不到& ...

  4. maven本地仓库的配置以及如何修改默认.m2仓库位置

    本地仓库是远程仓库的一个缓冲和子集,当你构建Maven项目的时候,首先会从本地仓库查找资源,如果没有,那么Maven会从远程仓库下载到你本地仓库.这样在你下次使用的时候就不需要从远程下载了.如果你所需 ...

  5. idea上使用maven入门(二)——本地仓库以及使用maven

    本地仓库: 首先创建完一个项目之后,点击左上角file->setting(建一个文件夹repository,建议创建到maven的外面,主要如果maven需要换版本,方便管理)如下图: ​ ma ...

  6. JAVA Maven 安装 jar 包到本地仓库,以 Oracle11g 的访问包 为例

    maven 作为 java 的首选包管理工具,使我们在创建和维护项目的时候变得十分简单,但是 maven 仓库并不是拥有的一切 jar 包的, 很多 jar 包由于收费或者版权什么的其他原因,并不存在 ...

  7. maven阿里云镜像及本地仓库

    一.添加阿里云镜像 1 找到maven的安装目录,conf文件夹下的setting.xml文件 2 打开setting.xml文件,找到mirrors节点添加阿里镜像库地址: <mirror&g ...

  8. Maven 添加jar包到本地仓库

    一.使用Maven命令安装jar包 前提:在windows操作系统中配置好了Maven的环境变量,怎么配置请自己百度,这里不介绍,可参考https://jingyan.baidu.com/articl ...

  9. maven使用deploy发布到本地仓库

    使用maven可以方便的开发好的jar包发布到本地仓库中,方便其他项目依赖使用,在pom.xml文件中添加如下的配置: <distributionManagement> <repos ...

随机推荐

  1. 使用Keras实现机器翻译(英语—>法语)

    import numpy as np from keras.models import Model from keras.models import load_model from keras.lay ...

  2. mysql group by 组内排序

    有数据表 comments------------------------------------------------| id | newsID | comment | theTime |---- ...

  3. java中的容器解释

    解释一:容器(Container)Spring 提供容器功能,容器可以管理对象的生命周期.对象与对象之间的依赖关系,您可以使用一个配置文件(通常是XML),在上面定义好对象的名称.如何产生(Proto ...

  4. The Eclipse runtime options

    Version 3.6 - Last revised August 5, 2009 The Eclipse platform is highly configurable. Configuration ...

  5. [转].net reactor 学习系列(二)---.net reactor界面各功能说明

    安装了.net reactor之后,可以在安装目录下找到帮助文档REACTOR_HELP.chm,目前没有中文版本,里面详细介绍了.net reactor的各功能及使用场景.本系列文章是基于此帮助文档 ...

  6. /etc/fstab 转

    一./etc/fstab文件的作用 磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载. 系统开机时会主动读取/etc/fstab这个文件中的内容 ...

  7. SpringMvc(1) --Eclipse搭建web项目

    http://blog.csdn.net/uucai http://blog.csdn.net/uucai/article/details/21258575

  8. mysql item类

    http://dev.mysql.com/doc/internals/en/item-class.html http://ourmysql.com/archives/1282

  9. 利用AWR 查看SQL 执行计划

    在AWR中定位到问题SQL语句后想要了解该SQL statement的具体执行计划,于是就用AWR报告中得到的SQL ID去V$SQL等几个动态性能视图中查询,但发现V$SQL或V$SQL_PLAN视 ...

  10. cocos3.0使用cocostudio动画帧结合地图对象键值创建精灵动画

    内容例如以下: #include "cocos2d.h" #include "cocostudio/CocoStudio.h" //精灵猫和其它精灵的tag t ...