maven基础知识(全)

Maven是一个采用纯Java编写的开源项目管理工具 , Maven采用了一种被称之为Project Object Model (POM)概念来管理项目,那么什么意思呢?POM指的是工程对象模型,即把工程当做对象来进行管理,所有的项目配置信息都被定义在一个叫做POM.xml的文件中,通过该文件Maven可以管理项目的整个生命周期,包括清除、编译,测试,报告、打包war、部署等等。

使用maven构建的项目有两个特点:
----依赖管理
  简单点说就是直接 通过pom.xml配置文件把各个分散的项目自动的关联起来 ,而不用我们程序员去手动地管理和维护这些项目(包括jar)之间依赖,这就是maven的第一个特点依赖管理。(图2)
----项目自动构建
  项目构建是部署阶段的事,主要是指把开发人员写好的代码进行打包(打成war,web项目只要打包成war包才能部署使用), 当然这个过程不仅仅只是一个打包,其中包含了清除,编译,测试,报告,这个过程就是项目构建过程。 但是交给maven这些的动作包括package,maven都自动会帮你做好。而不用我们手动去做,这就是maven项目的第二个特点项目自动构建。 
先解决ABC三个模块之间的依赖问题,然后使用父工程统一管理和维护这ABC三个模块(聚合),只要在对应pom.xml文件中进行配置就行,不需要我们手动去维护这些关系。 

1 安装
安装maven之前,需要安装JDK,maven才能运行。
配置环境变量:M2_HOME=maven的安装路径 path=%M2_HOME%/bin
测试:echo %M2_HOME% mvn -v

2 目录
bin :包含maven运行的脚本
boot:使用包含的框架加载自己的类库
conf:配置setting.xml文件
lib:包含了所有运行maven的Java类库(本身类和第三方依赖)
LICENSE:许可证
NOTICE:包含的第三方软件。

3 pom.xml
groupid,artifactid,version是一个项目最基本的坐标
groupid:公司为google,项目名称为cmmd,则,groupid为:com.google.cmmd
artifactid:子项目id, cmmd-main, cmmd-util , cmmd-web;通常为所在模块名称,如果整个下面下
的pom,则为项目名称
version:1.0-SNAPSHOT:快照,正在开发的版本 ; 2.0
name:名称
packageing: 定义了打包方式
classifier:附属构建的坐标。由附加的插件帮助生成,不能直接定义。
scope:依赖范围,如果为test,表示该依赖只对测试有效。在正式代码中,不能被引用。默认为
compille,表示对主代码和测试代码都有效。
<dependencies> //包含多个依赖
<dependency> //标明一个依赖
<dependency/>
...
<dependency>
<dependency/>
<dependencies/>
build plugins plugin:定义maven的插件


4 命令
命令为maven的插件
mvn clean:清理target目录
mvn clean compile:编译项目主代码到target/classes
mvn clean test:执行测试程序
mvn clean package:打包,默认生成jar文件,名称遵循artifactid-version.jar;执行时,先执行编译测
试等工作,然后利用jar插件的jar目标执行打包操作
mvn clean install:包会被放在本地仓库中给其他maven项目使用。
执行下一个时,会执行上面所有命令。
mvn org.apache.maven.plugins:maven-archetype-plugin:2.0-alpha-5:generate 构建maven项目骨架


5 基本知识点
maven中央仓库: http://repo1.maven.org/maven2/
maven是跨平台的
maven本身是分模块开发的,因此用户能看到如mavn-core-3.0.jar maven-model-3.0.jar文件
运行mvn命令实际上是执行了Java命令
maven安装目录/conf/setting.xml 设置的是全局范围;.m2/setting.xml范围是当前用户有效
maven的核心是pom.xml文件
没有任何实际的Java代码,就能定义一个maven项目的pom,这体现了maven的一大优点, 能最大程度让项目对象模型与实际代码独立,即解耦。
mavn会主动寻找项目主代码存放的位置:src/main/java /com.google.cmmd
项目 主代码存放的位置 :src/main/java
项目 测试码存放的位置 :src/test/java
pom配置完成后,maven会自动去中央仓库下载包。
pom永远在项目的根目录下。
使用archetype插件创建maven项目的骨架
maven项目存在 模块的概念,因此一个项目往往会被划分成很多个模块。
编译,测试,运行时会用到不同的calsspath。scope即定义这种jar包的依赖的。
提供了依赖传递的机制。
maven在用war方式打包的时候会根据POM的配置从本地仓库复制相应的jar文件到war包中。
Archetype插件会根据我们提供的信息创建项目骨架。
自动化部署。

web.xml中配置:
<listener>
<listener-class> org.springframework.web.context.ContextLoaderListener </listener-class>
</listener>
ContextLoaderListener为ServletListener,用来为web项目启动spring的IOC容器。

<context-param>
<param-name> contextConfigLocation </param-name>
<param-value> classpath:spring/spring-context.xml </param-value>
</context-param>
contextConfigLocation的context-param用来指定Spring配置文件的位置。





  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值