1 Maven简介

Maven核心功能
  • 依赖管理——所有的jar包都放在Maven仓库中,通过Maven坐标来进行部署
  • 一键构建
Maven项目标准目录结构
  • src/main/java - 核心代码部分
  • src/main/resources - 配置文件部分
  • src/test/java - 测试代码部分
  • src/test/resources - 测试配置文件
  • src/main/webapp - 页面资源,js,css,图片等
Maven常用命令
命令说明
mvn clean删除编译信息(target文件夹和字节码文件)
mvn compile将核心代码部分进行编译
mvn test将测试部分和核心代码进行编译
mvn package进行编译后打包
mvn install编译后打包,并将包导入到本地仓库

2 Maven生命周期

默认生命周期
阶段处理描述
验证 validate验证项目验证项目是否正确且所有必须信息是可用的
编译 compile执行编译源代码编译在此阶段完成
测试 Test测试使用适当的单元测试框架(例如JUnit)运行测试。
包装 package打包创建JAR/WAR包如在 pom.xml 中定义提及的包
检查 verify检查对集成测试的结果进行检查,以保证质量达标
安装 install安装安装打包的项目到本地仓库,以供其他项目使用
部署 deploy部署拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程
标准生命周期:
  • clean:项目清理声明周期
  • default默认生命周期
  • site:站点声明周期

3 使用Maven构建项目

使用骨架的方式

可以选一个模板,例如quickstart模板,构建好之后要自己新建一个resources目录,并且右键指定为资源根目录。IDEA不会自动创建资源根目录

不使用骨架的方式

自带main下的resources目录,不自带test下的resources目录

构建web项目

选择webapp模板,需要自己建立src/main/javasrc/test/java,并指定为sources root目录

如果想要再指定除了webapp之外另一个web sources目录,则需要手动到project structure - modules - web - web resource directories中添加


4 Maven改变环境

例如想指定Tomcat7和JDK8

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <port>8888</port>
            </configuration>
        </plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <target>1.8</target>
            <source>1.8</source>
            <encoding>UTF-8</encoding>
        </configuration>
    </plugins>
</build>
Maven使用模板

可以在settings - live templates里面新建模板,指定使用的位置


Scope标签

当出现jar包冲突的时候,可以使用scope标签来指定jar包的作用域

<!--provided表示仅在写代码期间使用jar包-->
<scope>provided</scope>

<!--test表示仅在test周期使用jar包-->
<scope>test</scope>

除此之外还有其他的依赖范围

依赖范围对于编译时对于测试时对于运行时例子
compileYYYspring-core
test-Y-Junit
providedYY-servlet-api
runtime-YYJDBC驱动
systemYY-Maven仓库之外的
Last modification:March 1st, 2021 at 09:34 pm
如果觉得我的文章对你有用,请随意赞赏