标签:
前提:----------------------------------------------------------------------------------------------------------------------------
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在运行的时候依赖,在编译的时候不会依赖。
标签:
原文地址:http://www.cnblogs.com/water3/p/4463172.html