美文网首页Java后端
服务端基础-Maven

服务端基础-Maven

作者: 纸简书生 | 来源:发表于2016-11-23 18:53 被阅读75次

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

    今天对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!

    相关文章

      网友评论

        本文标题:服务端基础-Maven

        本文链接:https://www.haomeiwen.com/subject/dcevpttx.html