一、maven的基本概念
maven是跨平台的项目管理工具,主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。
1.1项目构建
项目构建过程包括清理项目、编译项目、测试项目、生成测试报告、打包项目、部署项目,这六个步骤就是 一个项目的完整构建过程。理想的项目构建是高度自动化、跨平台、可重用的组件,是标准化的,使用maven就可以帮我们完成上述所说的项目构建过程。
1.2依赖管理
依赖指的是jar包之间的相互依赖,比如我们搭建一个Spring MVC的开发框架时,光有myapp-1.0-SNAPSHOT.jar这个jar包是不行的,myapp-1.0-SNAPSHOT.jar还依赖其他的jar包,依赖管理指的是使用maven来管理项目中使用的jar包,maven管理的方式就是“自动下载项目所需要的jar包,统一管理jar包之间的依赖关系。
1.3使用maven的好处
maven中使用约定,约定java源代码必须放在哪个目录下,编译好的java代码又必须放到哪个目录下,这些目录都有明确的规定。
maven的每一个动作都拥有一个生命周期 ,例如执行mvn install就可以自动执行编译、测试、打包、部署发布等构建过程。
只需要定义一个pom.xml然后把源码放到默认目录下,maven帮我们处理其他事情。
使用maven可以进行项目高度自动化构建管理、依赖管理、仓库管理。
二、maven的下载、安装
由于网上资源众多,这里就不赘述可参考链接: https://jingyan.baidu.com/article/0202781151f3471bcc9ce5d9.html
三、maven构建Java Project项目
1.1使用maven创建Java Project:
使用mvn archetype:generate命令,如下所示:
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=javademo -DarchetypeArtifactId=maven- archetype-quickstart -DinteractiveMode=false
使用mvn archetype:create命令,如下所示:
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=javademo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
BUILD SUCCESS就表示项目构建成功,在当前目录下(即D:\test)下构建了一个Java Project叫做javademo。
构建好的Java项目的目录结构如下:
1.2 JavaProject的pom.xml文件说明
通过Maven构建的JavaProject,在项目的根目录下都会存在一个pom.xml文件,进入javademo目录,可以看到有一个pom.xml文件,这个文件是Maven的核心。
(1)、pom意思就是project object model。
(2)、pom.xml包含了项目构建的信息,包括项目的信息、项目的依赖等。
(3)、pom.xml文件是可以继承的,大型项目中,子模块的pom.xml一般都会继承于父模块的pom.xml
pom.xml文件的内容如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>javademo</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>javademo</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<fork>true</fork>
<executable>
C:\Program Files\Java\jdk1.8.0_77\bin\javac.exe
</executable>
</configuration>
</plugin>
</plugins>
</build>
</project>
pom.xml文件的节点元素说明:
pom文件的顶级节点
object model版本,对Maven2和Maven3来说,只能是4.0.0
项目创建组织的标识符,一般是域名的倒写
定义了项目在所属组织的标识符下的唯一标识,一个组织下可以有多个项目
当前项目的版本,SNAPSHOT,表示是快照版本,在开发中
打包的方式,有jar、war、ear等
项目的名称
项目的地址
属性配置,比如:<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
构建项目依赖的jar
注:其中由groupId、artifactId和version唯一的确定了一个项目坐标
1.3 使用maven编译、测试、打包、部署发布项目
1.3.1 编译
编译源程序,进入命令行。切换到项目目录如我的(D:\test\javademo),执行命令:mvn compile
编译成功,在javademo目录下多出了一个target目录,target\classes里面存放的就是编译后的class文件
1.3.2 测试
进入命令行,切换到javademo目录下,执行命令mvn clean test,如下图所示:
测试成功,在javademo\target目录下会有一个test-classes目录,存放的就是测试代码的class文件。
1.3.3 打包
进入命令行,切换到javademo目录,执行命令:mvn clean package,执行打包命令前,会先执行编译和测试命令,如下图所示:
构建成功后,会在target目录下生成javademo-1.0-SNAPSHOT.jar包,如下图所示:
1.3.4部署发布:
进入命令行,切换到javademo目录,执行命令:mvn clean install ,执行安装命令前,会先执行编译、测试、打包命令,如下图所示:
构建成功,就会将项目的jar包安装到本地仓库,如下图所示:
1.3.5 运行jar包
进入命令行,切换到javademo目录,执行命令:java -cp target\javademo-1.0-SNAPSHOT.jar com.mycompany.app.App,如下图所示:
四、使用maven构建Java Web项目
1.1 创建Java Web项目
使用mvn archetype:generate命令,如下所示:
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=JavaWebDemo -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
1.2 使用maven命令编译、测试、打包、部署发布
使用命令mvn clean install,运行结果如图所示:
部署成功后,在JavaWebDemo\target目录下生成了一个JavaWebDemo.war文件,如下图所示:
将JavaWebDemo.war放到tomcat服务器中运行,如下图所示:
除了使用Tomcat服务器运行Web项目之外,我们还可以在Web项目中集成Jetty发布运行,首先在pom.xml文件中配置Jetty插件,如下:
打开命令行窗口,切换到JavaWebDemo目录,然后执行:mvn jetty:run启动Jetty服务器,如下图所示:
接着就可以在8080端口上访问应用了。如下图所示: