zoukankan      html  css  js  c++  java
  • Maven

    1 Maven是什么?

    Maven是一个采用纯Java编写的开源项目管理工具。

    Maven以项目为中心,采用了项目对象模(Project Object Model,POM),所有的项目配置信息都被定义在一个叫做pom.xml的配置文件中。通过该文件,Maven可以管理项目的整个声明周期,包括编译,构建,测试,发布,报告等等。

    2 关键名词

    • Project:任何您想build的事物,Maven都可以认为它们是项目。一个项目可以由多个子项目构成,也可以依赖其它的项目。
    • POM:POM(pom.xml)是Maven的核心文件,它是指示Maven如何工作的元数据文件,类似于Ant中的build.xml文件。POM文件位于每个项目的根目录中。
    • GroupId:groupId是组名,一般是公司域名的变体,标识了一个组(如公司)。
    • ArtifactId:artifactId是项目名,和groupId一起,组成一个项目的唯一标识符。
    • Dependency:一个典型的Java项目会依赖其它的包,这个时候就需要在pom.xml里添加对这个包的依赖,maven会自动下载配置好的jar包。
    • Plug-in:Maven是一个很紧凑的内核,围绕着它的是许许多多的插件,Maven所有的功能都是由插件来提供的。 我们可以在pom.xml里配置插件,以使用特定的功能。
    • Repository:仓库用于存放项目的依赖包,它可以是本地仓库,也可以是远程仓库。Maven有一个默认的远程仓库--central,可以从http://www.ibiblio.org/maven2/下载其中的依赖包。本地仓库的默认地址是${user_home}.m2 epository。
    • Snapshot:项目中可以(也应该)有一个特殊版本,它的版本号包括SNAPSHOT字样。该版本可以告诉Maven,该项目正处于开发阶段,会经常更新(但还未发布)。当其它项目依赖此项目时,Maven会在仓库中寻找该项目的最新版本,并自动下载、使用最新版。

    3 设计思想

    约定优于配置。其意义是,系统、库和框架应该假定合理的默认值,而无需不必要的配置,只有不符约定的部分才需要配置。

    Maven约定的目录如下:

    • /                                                                                 项目目录
      • pom.xml                                                                用于maven的配置文件
      • /src                                                                    源代码目录
        • /src/main/java                                              工程java源代码目
        • /src/main/resource                                        工程的资源目录
        • /src/test/java                                                单元测试目录
      • /target                                                                    输出目录,所有的输出物都存放在这个目录下
        • /target/classes                                               编译之后的class文件

    4 生命周期

    default生命周期有下列跟随的阶段:

    • validate:验证项目是正确的,所有必要的信息是可用的。
    • compile:编译项目的源代码。
    • test:用匹配的单元测试框架测试编译后的源代码。这些测试不应该要求代码被打包或者部署。
    • package:取编译后的代码,并打包它到可分配的格式。
    • integrationtest:处理和部署包到环境(不过有必要),执行集成测试。
    • verify:运行检查以证实生成的包是有效的,达到质量标准的。
    • install:安装这个包到本地仓库。
    • deploy:在一个集成或者发布环境中做,拷贝最终的包到远端仓库分享。

    mvn install命令将从validate开始一直执行到install阶段。

    mvn clean install表示先执行mvn clean操作,再执行mvn install。

    mvn clean dependency:copy-dependencies package则是在mvn clean后,mvn install之前,指定了插件。

    5 创建项目

    mvn archetype:create -DgroupId=com.umeng -DartifactId=portal

  • 相关阅读:
    双camera景深计算
    解决单反出片发灰难题 教你让照片变得通透
    增强画面纵深感的几个小技巧
    双目视觉算法简介
    Android系统源代码的下载与编译
    android 7.0 (nougat)的编译优化-ninja
    神奇的图像处理算法
    【老戴说镜头】浅谈双摄镜头技术
    [Android编程心得] Camera(OpenCV)自动对焦和触摸对焦的实现
    关于DLL模块导出函数
  • 原文地址:https://www.cnblogs.com/yanyichao/p/3851334.html
Copyright © 2011-2022 走看看