Maven
- 介绍:
Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。 - 功能
构造工程
管理jar包
编译代码
单元测试
打包项目
部署项目 - 搭建环境
1.java
a.新建JAVA_HOME到JDK安装目录
b.把%JAVA_HOME%\bin添加到path中
2.maven
a.新建MAVEN_HOME到maven安装目录
b.把%MAVEN_HOME%\bin添加到path中
3.测试:cmd>mvn -v
- 配置
1.仓库分类
本地仓库:用来存储从远程仓库或中央仓库下载的插件和jar包,项目使用一些插件或jar包,优先从本地仓库查找。
远程仓库:如果本地需要插件或者jar包,本地仓库没有,默认去远程仓库下载。
中央仓库 :在maven软件中内置一个远程仓库地址http://repo1.maven.org/maven2 ,它是中央仓库,服务于整个互联网,它是由Maven团队自己维护,里面存储了非常全的jar包,它包含了世界上大部分流行的开源项目构件。远程仓库可以在互联网内也可以在局域网内。
2.conf/settings.xml
更换jar仓库存储位置
<localRepository>文件路径</localRepository>
更换镜像
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
- maven工程
1.新建工程
File–>New–>Project–>Maven
注意:版本中snapshot快照(非正式),release正式发布版
2.目录结构
3.pom.xml
a.packaging打包类型
jar:java普通项目打包
war:java web项目打包
pom:pom文件中维护了各模块之间的依赖和继承关系,是maven依赖文件。
b.依赖查询:http://mvnrepository.com/
c.依赖范围scope
compile: 编泽依赖范围.如果没有指定,就会默认使用该依赖范围。使用此依赖范围的Maven依赖,对于编译、测试、运行三种classpath都有效。
provided:以提供依赖范围。使用此依赖范围的Maven依赖,对于编译和测试的classpath有效,但在运行时无效。
runtime:运行时依赖范围。使用此依赖范围的Maven依赖,对于测试和运行classpath有效,但在编译主代码时无效。
test: 测试依赖范围。使用此依赖范围的Maven依赖,只对测试的classpath有效,在编译主代码或者运行项目时无法使用此类依赖。
system:系统依赖范围。该依赖与三种classpath的关系,和provided依赖范围完全一致。只是,使用system范围依赖时,需要指定systemPath元素显示地指定依赖文件的路径。由于此依赖不是Maven仓库解析的,而且往往与本机系统绑定,可能造成构建的不可遗址,因此不建议使用。
e.添加插件
maven-compiler-plugin
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
tomcat7-maven-plugin
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8080</port>
<path>/</path>
</configuration>
</plugin>
f.添加运行模式 clean tomcat7:run
4.生命周期
清理(clean):目的是清理项目
编译(compile):编译项目的源代码。
测试(test):使用合适的单元测试框架测试编译的源代码。这些测试不应该要求代码被打包或部署。
报告
打包 (package): 采用编译的代码,并以其可分配格式(如jar)进行打包。
部署(deploy):在构建环境中完成,将最终的包复制到远程存储库以与其他开发人员和项目共享。