maven的简介
maven是一个专门为java项目打造的项目管理和构建工具
- 提供了一套标准的项目结构
- 提供了一套标准的构建流程(编译,测试,打包,发布…)
- 提供了一套依赖管理机制
maven的项目结构
-
普通的
java项目
pom.xml:maven项目配置文件src/main/java:存放java源码src/main/resources:存放资源文件的目录src/test/java:存放测试源码的目录src/test/resources:存放测试资源的目录target:存放所有编译、打包生成的文件
修改默认配置
修改默认本地仓库
找到localRepository标签,复制该行,填写本地仓库路径,如图所示。

修改默认远程仓库
在mirrors标签中添加阿里的maven仓库镜像
<!--阿里云公共仓库-->
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
修改使用默认的JDK
<profiles>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
pom.xml文件
-
modelVersion:maven模板的版本,对于maven2和maven3来说,它只是有4.0.0 -
groupId:组织id,一般是公司域名的倒写。- 域名倒着写:
com.baidu - 域名倒着写+项目名:
com.baidu.appolo
- 域名倒着写:
-
artifactId:项目名称,也可以是项目模块名称,对应groupId中的子项目。 -
version:项目的版本号。如果项目还在开发中,是不稳定版本,通常在版本后带-SNAPSHOT。version使用三位数字标识,例如:1.0.0注意:
groupId+artifactId+version称为坐标。唯一值,在互联网中唯一标识一个项目。<groupId>公司域名的倒写</groupId> <artifactId>自定义项目名称</artifactId> <version>自定义版本号</version> -
packaging:打包后压缩文件的扩展名,默认是jar,web应用是war。 -
依赖
<dependencies> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.25</version> </dependency> </dependencies> -
properties:设置属性 -
build:maven在进行项目的构建时,配置信息,例如指定编译java代码使用的jdk的版本
maven的生命周期
maven常用命令
- mvn clean
- mvn compile
- mvn test-compile
- mvn test
- mvn package
- mvn install
- mvn deploy
在idea中配置maven


以上的操作是配置当前项目的maven,要想对新的项目也有效,就需要配置File中的Other Settings,如图所示。

创建maven项目
创建Java项目

点击"Next"。

填写坐标,点击"Next"。
然后更改maven配置,使用自己安装的maven。

最后点击"Finish"。
在创建好的maven项目中创建两个文件夹,有时候会自动创建,有时候不会自动创建,需要自己手动创建。在main目录下创建resources目录,并且右击resources目录,选择Mark Directory as中的Resources Root,如图1。在test目录下创建resources目录,并且右击resources目录,选择Mark Directory as中的Test Resources Root,如图2。

图1

图2
设置项目编译命令



项目的打包

创建Web项目
-
选择maven模板
maven-archetype-webapp
其它的都选
Next,最后选Finish即可。创建好Web项目后,修改一下pom.xml配置文件,把默认的jdk1.7改为1.8,把junit4.11改为junit4.12,将
pluginManagement标签中删除。只保留如下图所示的内容。
在
plugins标签中写入如下内容<!-- jetty 插件 --> <plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>9.4.15.v20190215</version> <configuration> <httpConnector> <port>9090</port> <!-- 这里指定 jetty 服务的端口号 --> </httpConnector> <webAppConfig> <contextPath>/maven02</contextPath> <!-- 这里指定在浏览器访问时,当前Web应用的根路径 --> </webAppConfig> </configuration> </plugin>在
plugins标签中再写入tomcat插件信息<!-- Tomcat 插件 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.1</version> <configuration> <port>8081</port> <!--启动端口默认:8080 --> <path>/test</path> <!--项目的站点名,即对外访问路径--> <uriEncoding>UTF-8</uriEncoding> <!--字符集编码默认:ISO-8859-1 --> <server>tomcat7</server> <!--服务器名称 --> </configuration> </plugin>先来配置maven启动jetty
然后就可以点击右上角的运行按钮了,如图所示。

当你看到这些信息说明成功运行jetty服务器

指定端口的另一种方式是在命令中
jetty:run -Djetty.http.port=9090
配置tomcat同理,如图所示。

maven环境下多模块项目的构建
-
创建父模块,什么也不用选,直接点击
Next,然后填写GroupId和ArtifactId,点击Next,最后点击Finish即可。
-
创建maven_dao模块



-
创建maven_service模块同上
-
创建maven_controller模块,只需要选择
maven-archetype-webapp即可,其它操作同上。
修改JDK版本
单元测试版本
删除
pluginManagement标签 -
-
Q.E.D.


