首页 > 技术文章 > maven基础学习

summer-sun 2016-05-31 19:40 原文

项目结构

src
     -main
          -java
               -package
     -test
          -java
               -package
     -resources

maven常用命令

mvn -v     查看maven版本
compile     编译
test     测试
package     打包
clean     删除target
install     安装jar包到本地仓库

创建目录的两种方式

1、archetype:generate 按照提示进行选择
2、archetype:generate -DgroupId=组织名,公司网址的反写+项目名
                                        -DartifactId=项目名-模块名
                                        -Dversion=版本号
                                  -Dpackage=代码所存在的包名
坐标
     构件
仓库
     本地仓库和远程仓库
镜像仓库

完整的项目构件过程

     清理、编译、测试、打包、集成、集成测试、验证、部署

maven生命周期

( clean、compile、test、package、install )
clean     清理项目
default     构建项目(最核心):compile、test、package、install
site     生成项目站点

pom.xml

     maven项目的核心管理文件,用于项目描述、组织管理、依赖管理和构件信息的管理
 
 
项目中要运用某个框架,就需要把该框架的jar包引入到项目的classpath中,这样项目就可以使用该框架中封装的方法

maven提供3种classpath

1、编译
2、测试
3、运行

scope依赖范围

compile:编译,默认的范围,编译测试运行都有效
provided:测试和编译时有效
runtime:测试和运行时有效
test:测试,只在测试时有效
system:测试和编译时有效,可移植性差,与本机相关联
import:导入的范围,只使用在dependencyManagement中,表示从其他的pom中导入dependency的配置
 

依赖具有传递性  假设B项目依赖A项目,C项目又依赖B项目,那么在C项目中运行compile时,在引进B项目的同时,自动就把A项目也引进来了 

如果不想将A项目导入的话,可以使用exclusions下设置exclusion,然后将A项目的坐标添加即可
 
依赖冲突
1.短路优先
2.路径相同,则谁先声明,依赖谁

聚合

如果项目D依赖项目C,项目C依赖项目B,项目B依赖项目A,我们需要一个个安装这项项目,在Maven中有一种方式可以将多个项目一次性安装,这就是聚合的概念。简单讲就是,需要人工多次操作的,只要MAVEN能理解,一次性告诉他,他就能帮我们做这件单调烦人的事情了。——使用<modules></modules>这个标签

继承

多次使用到的依赖,比如:单元测试,没有必要在所有的项目中都引用一下,此时就可以采用继承的方式来实现,先来一个父级的POM.XML然后再继承此POM.XML

 

packaging 改为pom

dependencyManagement 中并不提取依赖
property中定义了unit版本号,之后可以引用

 

父类parent中的main和test没有意义,可以删除

推荐阅读