zoukankan      html  css  js  c++  java
  • maven入门(一)

    摘抄于大道至简的教程

    以及菩提树下的杨过的教程

    • maven用来做什么?
      负责管理项目开发过程中的几乎所有的东西
      试想一下,我们会在工作中同时创建很多项目,每个项目可能都会引用一些公用的jar包(.NET中是dll文件),一种作法是每个项目里,都复制一份这些依赖的jar包(或dll文件),这样显然不好,相同的文件在硬盘上保存了多份,太占用空间,而且这些依赖的jar包(或dll文件)的版本也不太好管理(比如某个公用的jar包,从1.0升级到2.0,如果所有引用这个jar包的项目都需要更新,必须一个个项目的修改)。
      maven的仓库则很好的解决了这些问题,它在每台机器上创建一个本机仓库,把本机上所有maven项目依赖的jar包统一管理起来,而且这些jar包用“坐标”来唯一标识(注:坐标是另一个重要的概念,后面还会讲到,这里只要简单理解成“唯一识别某个jar包文件名、版本号”的标识即可),这样所有maven项目就不需要再象以前那样把jar包复制到lib目录中,整个maven项目看起来十分清爽。

    • maven中的compile,test是什么鬼?
      这个也是maven的一个基本调度机制。maven把项目的构建划分为不同的生命周期(lifecycle)。
      粗略一点的话,它这个过程(phase)包括:编译、测试、打包、集成测试、验证、部署。maven中所有的执行动作(goal)都需要指明自己在这个过程中的执行位置,然后maven执行的时候,就依照过程的发展依次调用这些goal进行各种处理。
      一般来说,位置稍后的过程都会依赖于之前的过程。当然,maven同样提供了配置文件,可以依照用户要求,跳过某些阶段。

    • maven的项目结构是怎么样的?
      Maven的标准工程结构如下:
      `
      |-- pom.xml(maven的核心配置文件)

    |-- src

    |-- main

    | `-- java(java源代码目录)

    | `-- resources(资源文件目录)

    |-- test

    `-- java(单元测试代码目录)  
    

    |-- target(输出目录,所有的输出物都存放在这个目录下)

    |-- classes(编译后的class文件存放处)  
    

    `

    • maven有什么约定?
      对maven来说,采用"约定优于配置"的策略可以减少修改配置的工作量,也可以降低学习成本,更重要的是,给项目引入了统一的规范。
      所谓的"约定优于配置",在maven中并不是完全不可以修改的,他们只是一些配置的默认值而已。但是除非必要,并不需要去修改那些约定内容。maven默认的文件存放结构如下:
      每一个阶段的任务都知道怎么正确完成自己的工作,比如compile任务就知道从src/main/java下编译所有的java文件,并把它的输出class文件存放到target/classes中。

    • Maven的版本规范???
      maven使用如下几个要素来唯一定位某一个输出物:
      groudId:
      团体、组织的标识符。团体标识的约定是,它以创建这个项目的组织名称的逆向域名(reverse domain name)开头。一般对应着JAVA的包的结构。例如org.apach
      artifactId:
      单独项目的唯一标识符。比如我们的tomcat, commons等。不要在artifactId中包含点号(.)
      version:
      一个项目的特定版本
      packaging:
      项目的类型,默认是jar,描述了项目打包后的输出。类型为jar的项目产生一个JAR文件,类型为war的项目产生一个web应用
      maven在版本管理时候可以使用几个特殊的字符串 SNAPSHOT,LATEST,RELEASE。比如"1.0-SNAPSHOT"。各个部分的含义和处理逻辑如下说明:
      SNAPSHOT
      这个版本一般用于开发过程中,表示不稳定的版本
      LATEST
      指某个特定构件的最新发布,这个发布可能是一个发布版,也可能是一个snapshot版,具体看哪个时间最后
      RELEASE
      指最后一个发布版

    • Maven仓库具体是怎么产生的
      首次运行完mvn -version后,会在用户目录下创建一个.m2的目录(比如:C:Users当前用户名.m2),这个目录是maven的“本地仓库”,仓库是maven中一个很重要的概念。

    -- 下载很慢,怎么配置代理服务器
    maven项目在编译、测试、打包里,会需要从maven的中央仓库(即:maven组织公布在互联网上的一个站点,里面已经收录了目前绝大多数主流的jar包)下载jar包等文件,如果使用代理服务器上网,需要配置代理服务器。
    把%MAVEN_HOME%confsettings.xml复制一份到本地仓库C:Users当前用户名.m2下,然后编辑该文件,找到下面这段
    <proxies> <!-- proxy | Specification for one proxy, to be used in connecting to the network. | <proxy> <id>optional</id> <active>true</active> <protocol>http</protocol> <username>proxyuser</username> <password>proxypass</password> <host>proxy.host.net</host> <port>80</port> <nonProxyHosts>local.net|some.host.com</nonProxyHosts> </proxy> --> </proxies>

  • 相关阅读:
    PAT顶级 1024 Currency Exchange Centers (35分)(最小生成树)
    Codeforces 1282B2 K for the Price of One (Hard Version)
    1023 Have Fun with Numbers (20)
    1005 Spell It Right (20)
    1092 To Buy or Not to Buy (20)
    1118 Birds in Forest (25)
    1130 Infix Expression (25)
    1085 Perfect Sequence (25)
    1109 Group Photo (25)
    1073 Scientific Notation (20)
  • 原文地址:https://www.cnblogs.com/cgengwei/p/6756868.html
Copyright © 2011-2022 走看看