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>

  • 相关阅读:
    Python排列函数:sort、sorted
    Python高阶函数:map、reduece、filter
    Python:容器、迭代对象、迭代器、生成器及yield关键字
    JPA-映射-(@OneToOne)双向一对一
    JPA-映射-(@OneToMany、@ManyToOne)双向一对多
    JPA-映射-(@OneToMany)单向一对多
    JPA-映射-(@ManyToOne)单向多对一
    JPA-EntityManager.merge()
    JPA-API
    leetcode 2.Add Two Numbers
  • 原文地址:https://www.cnblogs.com/cgengwei/p/6756868.html
Copyright © 2011-2022 走看看