前提:----------------------------------------------------------------------------------------------------------------------------

project : Maven
description : Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。

--------------------------------------------------------------------------------------------------------------------------------------
一,如何使用maven构建项目
1,下载和安装maven
  MAVEN_HOME : "maven的安装目录"
  path : %MAVEN_HOME%\bin
2,新建一个pom.xml文件,在该文件写上相应的配置
*
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>cn.water.maven.hello</groupId>
<artifactId>hello-first</artifactId>
<version>SNAPSHOT-0.0.1</version>

<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.10</version>
    <scope>test</scope>
  </dependency>
</dependencies>

</project>
* 其中最重要的元素节点就是GAV--(groupId,artifactId,version)
项目坐标
  groupId------------------用啦表示项目的名称
  artifactId---------------用来表示项目的模块,建议使用项目的名称-模块名称 such as : crm-userGroup
  versionId----------------项目的版本号
3,建立相应的工程目录,不过格式严格要求如下
pom.xml
src
  main
    java------------------------java源代码
    resources-------------------源文件的资源目录,(hibernate.cfg.xml,applicationContext.xml)
  test
    java------------------------工程的测试代码
    resources-------------------测试工程所用到的资源目录文件

4,执行mvn compile 命令

* 这个时候maven就会从中央仓库中下载相应的jar包(保存到.m2的文件夹中),但是可以设置本地的仓库
* 设置下载到本地仓库的本地目录,打开settings.xml文件
找到<localRepository>D:/Java/maven</localRepository>里面的内容可以根据自己的想要防止的地方
但是这里的文件要conf/文件下的setttings

5,archetype骨架式地构建自己的项目
  5.1 : 新建一个目录放置我们的工程:mkdir 03
  5.2 : 切换到刚刚新建的03目录下,执行 mvn archetype:generate
  5.3 : 后面的根据提示来建立我们的工程


二,正式进入maven的学习
1,maven总体上可以分为三个部门
* 依赖
* 仓库
* 生命周期和插件

三,依赖
1,依赖包的查询
* 所有的依赖都是通过坐标来进行存储的(GAV-->groupId,artifactId,version)
* 有一些网上的仓库提供了查询
* 什么叫传递性依赖
依赖是会被传递的----------但是只是作用于compile
如果我们新建一个项目,这个项目主要是放置PO对象,但是使用到hibernate核心的jar包,
所以当我们再新建一个项目的时候,需要依赖前面的一个项目,所以我们要导入这个项目,但是与此同时,hibernate的jar包
也会相应的导入进来。

 

1,test 范围指的是测试范围有效的,在编译和打包时都不会使用这个依赖
2,compile范围指的是编译范围有效的,在编译和打包时会将依赖存储进去
3,provided依赖,在编译和测试过程有效,最后生成war包时不会加入,诸如,
serviet-api,因为servlet-api,tomcat等web服务器已经存在了,如果再打包回冲突
3,runtime在运行的时候依赖,在编译的时候不会依赖。

posted on 2015-04-28 15:38  六水先生  阅读(167)  评论(0编辑  收藏  举报