Java基础-Maven浅析01
什么是Maven?
在Java开发过程中,为了实现功能,我们往往要引用大量外部的库与框架,如mybatis、mysql-connector.jar, Springboot等待。管理这些外部库与框架,是一件非常让人头疼的事情,而Maven是一个构建自动化与项目管理的工具,它简化了我们编译、运行、打包步骤,让开发人员更关注于编写代码而不是处理一些复杂的构建脚本。
Maven的生命周期

上图中,是我们IDEA工具中常见的生命周期,它实际是可以划分成3大块(clean、default、site)
clean生命周期:
清理上一次构建信息
default生命周期
validate
: 校验项目的结构与配置文件compile
: .java文件编译成.class,自动下载依赖的jar包test
: 单元测试跑起来package
: 项目打成jar包verify
: 对集成测试的结果进行检查,以保证质量达标install
: 将jar包放到本地的maven仓库deploy
: 将本地的工程包推送到远程服务器
site生命周期
将项目中的文档、README文件、API文档等信息提取出来,并将其转换为HTML、PDF等格式的文档,以便用户查看和下载
Maven工程创建
groupId:项目组或者组织的唯一标识,如com.aliyun.schedulerx
artifactId:项目或者模块的名字
idea创建

mvn命令创建:
mvn archetype:generate -DgroupId=com.lazy.java -DartifactId=hello -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=1.0
项目结构:
maven定义了严格的项目文件格式,不按照这个文件格式,会导致项目编译部署出现问题
src/main/java –存放项目的.java文件src/main/resources –存放项目资源文件。比方spring,hibernate配置文件src/test/java –存放全部測试.java文件,比方JUnit測试类src/test/resources ---測试资源文件target ---项目输出位置,编译完毕后的东西放到这里面pom.xml

Pom文件格式

父子模块pom配置

父模块POM配置
<!-- 配置子模块-->
<modules>
<module>customercore-api</module>
<module>customercore-service</module>
</modules>
<!--环境-->
<profiles>
<profile>
<id>dev</id>
<properties>
<envro>dev</envro>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<envro>prod</envro>
</properties>
</profile>
</profiles>
<!--父模块jar包版本统一控制-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.duobaoyu.systemcenter</groupId>
<artifactId>system-center-api</artifactId>
<version>1.0.${envro}-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>
子工程pom配置

