服务端基础-Maven

前段时间给公司说了自己想倒腾下服务端技术,上个版本简单些了三个接口。这个版本没想到幸福来得这么快,直接叫我上手服务端开发。现在有点后悔了,😭😭。当初不装逼就不用这样又做服务端又做客户端的了。

今天对Maven做个简单总结

Maven?

Maven官网

Ant官网

要弄懂一样东西是做什么用的,做直接的方式就是看官方介绍(Google,Baidu):

官方介绍:

  • Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.

类比于iOS中,就对应到我们常用的Cocoapods用得最多的就是包的依赖管理。但功能却比iOS开发中的Cocoapod牛逼多了。

经常和Maven出现在一起的还有一个开源工具名叫Ant。同样是Apache门下的。

AntMaven最大的不同在于Ant是构建工具,Maven一般用于包管理及项目编译。顺便提一下还有一个常见的构建工具那就是Make。不同之处在于Make更多应用于c/c++ ,Ant更多应用于Java现在一般都是用Maven就可以了。

来看看Maven可以做哪些事情:

  • 项目构建
  • 文档管理
  • 生成测试报告
  • 解决项目间依赖项
  • 源代码版本管理
  • 项目Releases
  • 项目的分发

专用名词

在使用idea创建Maven项目的时候,会让你输入项目名称之类的。比如:

这里总结一下。

名词 作用
Project 任何你想 build 的事物,Maven都会把它们当作是一个 Project。这些 Project 被定义为 POM(Project Object Model)。一个 Project 可以依赖其他的project,一个 project 也可以有多个子project组成。
POM POM(pom.xml) 是 Maven 的核心文件,它是指示 Maven 如何工作的元数据文件,类似 ant 的 build.xml 文件。pom.xml 文件应该位于每个 Project 的根目录。
GroupId 顾名思义,这个应该是公司名或组织名。
ArtifactId 构建出来的文件名,一般来说或,这个也是project名。
Packaging 项目打包的类型,可以是将jar、war、rar、ear、pom,默认是jar。
Version 项目的版本,项目的唯一标识由 groupId+artifactId+packaging+versionz 组成。
Dependency 为了能够 build 或运行,一个典型的java project会依赖其他的包,在Maven中,这些被依赖的包就被称为 dependency。
Plug-in Maven是有插件组织的,它的每一个功能都是由插件提供的,主要的插件是由 java 来写的,但是他也支持 beanshell 和 ant 脚本编写的插件。
Repository 仓库用来存放artifact的,可以是本地仓库,也可以是远程仓库,Maven是有一个默认的仓库
Snapshot 工程中可以(也应该)有这样一个特殊的版本:这个版本可以告诉Maven,该工程正在处于开发阶段,会经常更新(但还未发布)。当其他工程依赖此类型的artifact时,Maven会在仓库中寻找该artifact的最新版本,并自动下载、使用该最新版本。

Maven命令

7天学会Maven(第一天——了解 Maven)

Maven 标准目录结构

好的目录结构可以使开发人员更容易理解项目,为以后的维护工作也打下良好的基础。

Maven2根据业界公认的最佳目录结构,为开发者提供了缺省的标准目录模板。Maven2的标准目录结构如下:

更!!!

2016-11-28

本地仓库、远程仓库

有全局和用户之分。如果更改用户下的配置只对当前用户起作用,更改全局的则对所有的用户起作用。

maven的仓库只有两大类:

  • 1.本地仓库:就是Maven在本地存储构件的地方。
    • 1.1 maven的本地仓库,在安装maven后并不会创建,它是在第一次执行maven命令的时候才被创建。

    • 1.2 maven本地仓库的默认位置:无论是Windows还是Linux,在用户的目录下都有一个.m2/repository/的仓库目录,这就是Maven仓库的默认位置

    • 1.3 如果需要更改maven默认的本地仓库的位置,这里要引入一个新的元素localRepository,它是存在于maven的settings.xml文件中

      • 1.3.1 先在/.m2/目录下创建settings.xml文件,然后在~/.m2/settings.xml,设置localRepository元素的值为想要的仓库地址

<settings>
<localRepository>本地maven路径</localRepository>
</settings>
```

  • 2.远程仓库
    • 2.1 中央仓库
      • 2.1.1 最核心的中央仓库开始,中央仓库是默认的远程仓库,maven在安装的时候,自带的就是中央仓库的配置。
    • 2.2 私服
      • 2.2.1 私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。当Maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。我们还可以把一些无法从外部仓库下载到的构件上传到私服上。
      • 2.2.2 当前主流的maven私服:
        • 1.Apache的Archiva
        • 2.JFrog的Artifactory
        • 3.Sonatype的Nexus
    • 2.3 其它公共库

远程仓库配置

配置远程仓库将引入新的配置元素:<repositories> <repository><repositories>元素下,可以使用<repository>子元素声明一个或者多个远程仓库。

<updatePolicy>元素:表示更新的频率,值有:never, always,interval,daily, daily为默认值。

Have Fun!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349

推荐阅读更多精彩内容

  • |-1-更新内容[6.从仓库解析依赖的机制(重要)] 1Maven仓库作用 仓库用来存储所有项目使用到构件,在ma...
    zlcook阅读 6,032评论 0 25
  • 首先私服是一种衍生出来的特殊的Maven远程仓库,构建私服的好处请看3.5私服 可以帮助大家建立私服的仓库管理软件...
    zlcook阅读 10,535评论 0 32
  • 目前在看nexus私服章节的知识时需要用到仓库与镜像的知识,正好通过简书把仓库和镜像章节的笔记整理一下 仓库 ma...
    小炼君阅读 1,277评论 0 48
  • 我和我想成为的那个人 距离太远 他谦逊 平和 宽厚 忍耐 大度 …… 心装得下整个世界 我自大 躁动 狭隘 放纵 ...
    庆善阅读 119评论 5 1
  • 我不是天使,却一直努力想弄懂你的天堂。也许真的天生愚笨,总是难以到达你预设的舞台。嗯,还是忘了吧!或者,有些人天生...
    珠海红叶原创阅读 165评论 1 2