Maven的学习(没蚊)
本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用.
转载请注明 出自 : luogg的博客园 谢谢配合!
与maven功能类似的技术,ant,git
一.什么是maven
maven是一个跨平台的项目管理工具,主要用于基于java平台的项目构建,依赖管理.
二.maven的安装
(jdk必须1.6以上)
1.解压
2.将需要的jar包放入m2文件夹,仓库
3.修改setting.xml,将localRepository
元素中的路径指向m2jar包路径
4.修改环境变量
setting.xml中配置仓库路径localRepository的时候千万别用中文路径
三.maven的约定
src/main/java : (Source Folder)存放项目的java文件
src/main/resources 存放项目的资源文件,如spring,hibernate的配置文件
src/test/java 存放所有的测试的java文件
src/test/resources 存放测试用的资源文件
target 项目输出位置
pom.xml 文件(坐标)
四.判断是否安装成功
svn -v(ersion)
若没有安装成功,可能是环境变量没有配置
五.pom中的坐标
pom.xml文件中每一个jar包都有一个坐标
坐标是由groupId,artifactId,version,scop组成的,scope默认是compile.
groupId : 一个组织
artifactID : 项目名称
version : 版本号
JAR文件的名字 = artifactID-version
六.maven常用命令
mvn compile : 编译,编译之后生成target目录,里边存放class文件.
mvn clean : 清空target目录
mvn test : 编译并生成报告
mvn package : 打包成jar包
mvn install : 将jar包部署到仓库
七.maven生命周期
清理->编译->测试->报告->打包->部署
八.pom.xml的格式
如果项目B需要依赖于项目A , 那么,在项目B的pom.xml中需要写入依赖关系 :xml <dependencies> <dependency> //组名,基本一个组下边所有项目,groupID都一样 <groupId>com.itheima11</groupId> //项目名 <artifactId>Hello</artifactId> //版本号 <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies>
九.eclipse创建maven项目
需要先创建一个workingSet
创建的时候,选择maven骨架,atrifactID为maven-archetype-quickstart
run as macen build, goals : 输入compile
创建maven项目之后,默认用的jdk1.5的版本,需要换成本机的jdk版本.
十.maven的依赖传递和继承
依赖的传递 : 若项目A依赖于项目B,项目C又依赖于项目A,那么项目C会去依赖于项目B的,
maven的继承 : 若项目Base中有junit依赖,HelloBase工程也有junit依赖,那么HelloBase依赖于Base的话,就不需要再写junit依赖了.继承了Base中的依赖.
我们将基类Base中pom.xml中的<packaging>pom</packaging>
设置为pom格式, 在HelloBase工程下边,用parent的格式引入Base中pom依赖的包xml <parent> <groupId>com.itheima11.maven</groupId> <artifactId>Base</artifactId> <version>0.0.1-SNAPSHOT</version> </parent>
十一.maven私服nexus
setting.xml的配置中, 先从本地库找对应的jar包,如果本地库找不到,就去网上找,配置了私服的话, 就去私服找,通过私服,去网上找.
私服的使用需要在setting.xml文件中配置.
十二.配置阿里的jar包下载路径
修改setting.xml配置文件,
<servers>
<server>
<id>tomcat7</id>
<username>admin</username>
<password>admin</password>
</server>
</servers>
<mirrors>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<mirror>
<id>repo1</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo1.maven.org/maven2/</url>
</mirror>
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
</mirrors>