文章目录
一、maven是什么?
Maven就是项目管理工具,用来构建项目的。也就是清理、编译、测试、运行、打包、安装整个过程都交给maven管理,整个过程就是构建。
二、maven安装与配置
1、官网下载
官网下载:http://maven.apache.org/download.cgi
然后解压(gz包或者zip包)到最好没有中文没有空格的路径。目录结构如下:
2、配置环境变量
Maven 本身就是基于Java 写的,所以在安装配置 Maven 之前,有必要将 Java 的运行环境安装配置好,jdk安装好。
Windows环境下:
配置内容同 JDK 的配置内容一样,也是两部分:一部分是在系统环境变量或者用户环境变量中配置一个 MAVEN_HOME;另一部分也是将 Maven 里面的 bin 目录追加到 Path 环境变量后面。
3、测试安装是否成功:
win+r cmd 命令行 输入mvn –version 或者maven –v
查看安装的maven信息及jdk信息,成功打印说明配置成功。
三、 maven目录结构
(1)bin:maven运行脚本,命令。
在命令行输入任何一条 mvn 命令时,实际上就是在调用这些脚本。不带cmd后缀的命令是 UNIX 平台的 shell 脚本,带cmd的是基于 Windows 平台的脚本。
mvnDebug文件比mvn文件多了一条 MAVEN_DEBUG_OPTS 配置,其作用就是在运行 Maven 时开启 debug,以便调试 Maven 本身。m2.conf 文件,这是 classworlds 的配置文件。
(2)boot:该目录只包含一个文件,plexus-classworlds-2.2.3.jar (plexus-classworlds是一个类加载器框架,maven使用该框架加载自己的类库)。
(3)conf:配置文件 setting.xml,修改该文件就可以在机器上全局的制定maven的行为。但一般情况下,更倾向于复制该文件到~(用户目录)/.m2/目录下,然后修改该文件,在用户范围内制定maven的行为。
(4)lib:包含maven运行时所需要的java类库,包括第三方的依赖类库。用户可以在这个目录中找到 Maven 内置的超级 POM
:
(5)LICENSE.txt:记录了 Maven 使用的软件许可证Apache License Version 2.0。
(6)NOTICE.txt:记录了maven包含的第三方软件。
(7)README.txt:记录了maven的简要介绍。包括安装需求及如何安装的简要指令等。
四、maven优点
- Maven将项目构建过程标准化,每个阶段使用一个命令完成,一键构建,无需安装eclipse和tomcat;
- 有一个清晰的项目结构;
- 纯java语言开发,跨平台的,可以在window、linux、mac上使用;
- 可以将大型项目拆分为模块开发,提升开发效率;
- Maven的依赖管理。Maven的依赖管理,其实就是管理jar包的过程。本地仓库统一管理jar,使jar与项目分离,减轻项目体积。
五、maven常用命令
- mvn clean 清理,编译后的目录;
- mvn compile 编译;只编译main目录,不编译test中代码;
- mvn test-compile 编译test麻目录中代码;
- mvn test 运行test里边代码测试;
- mvn package 打包 ;
java项目打成jar包
web项目打成war包 - mvn install 发布项目到本地仓库,在本地Repository中安装jar,供其他工程使用;
- tomcat run 一键构建项目
- mvn site 生成项目的相关文档和生成文档相关的元素,包括name,url,和description等。
六、maven命令的生命周期
1、clean 生命周期:清理项目。
2、default 生命周期:构建项目:
compile、test-compile、test、package、install
3、site生命周期:建立和发布项目站点,生成项目描述的文档静态页。
不同生命周期的命令可以一起使用,eg:mvn clean compile
但是同一生命周期的命令执行后面的,就相当于把前边的都执行一遍了 eg:mvn install就相当于把前边的都执行了。
执行顺序: compile < test-compile < test < package < install;
七、maven 配置启动tomcat版本
maven默认使用的tomcat6,可以通过web.xml中配置Tomcat高版本插件,eg:tomcat7 ,注意,maven build 时命令变成:tomcat7:run 。
<build>
<plugins>
<!-- 配置Tomcat插件 ,用于启动项目 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<!--如果不设置,则默认为猫的自定义端口,项目路径为http://localhost:默认端口/项目名 -->
<configuration>
<!--如果端口号改为8088:那么访问的时候路径的端口就要写成8088 -->
<port>8088</port>
<!-- 如果设置为/,则项目了路径为http://localhost:端口号 /-->
<!-- 如果设置为/lw,则项目了路径为http://localhost:端口号/lw -->
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
八、scope依赖作用域
也可以称作依赖范围:maven中的的依赖,会根据场景和所处阶段发生变化。scope属性有五种:
system:不推荐使用,使用system作用域不会去本地仓库寻找依赖,要指定本地绝对路径。
九、maven相关问题
maven+tomcat 热部署 可参考:maven+tomcat 热部署
如何创建maven项目,请参考:创建maven项目
关于maven pom.xml配置,请参考:maven pom.xml配置
maven settings.xml配置,请参考:maven settings.xml配置