maven
随着时间的磨逝,我离我的职业生涯有更进了一步,最近开整了maven这个爸爸,来进行整理我的项目,使我的项目更加的整齐,同时我也可以同过maven的分模块进行编译我们java后端的三个老大哥,接下来分享一下如何安装以及去使用分模块的maven
一.安装
1:需要准备的东西
① JDK
②IDEA(以最智能的IDEA为主题)
③Maven程序安装包
2. 前往https://maven.apache.org/download.cgi下载最新版的Maven程序:
![img](https://i-blog.csdnimg.cn/blog_migrate/863481b6910bf400e2d4ce5a110010a0.png)
3.将文件解压到D:\Program Files\Apache\maven目录下:
![img](https://i-blog.csdnimg.cn/blog_migrate/4c3fd53f3e786c8e0a8aeaa202406587.png)
4.新建环境变量MAVEN_HOME,赋值D:\Program Files\Apache\maven
5.编辑环境变量Path,追加%MAVEN_HOME%\bin;
![img](https://i-blog.csdnimg.cn/blog_migrate/dc84cdbe38165f0dbf3ad9d9a98174bb.png)
6.至此,maven已经完成了安装,我们可以通过DOS命令检查一下我们是否安装成功:
![img](https://i-blog.csdnimg.cn/blog_migrate/a5e4bd78a7c2f7b927b7121d6f52548c.png)
这样maven的环境就ok了
二.创建maven项目
1.选择webapp骨架
![img](https://i-blog.csdnimg.cn/blog_migrate/256083af8fc231f9146e9cd01b8d0429.png)
2.配置maven 的GAV
![img](https://i-blog.csdnimg.cn/blog_migrate/a8152c64beb00feabfbe20ac2c20251d.png)
3.配置你的本地的maven库
![img](https://i-blog.csdnimg.cn/blog_migrate/ff6ce9948558e8553b9553075aa31be4.png)
3.配置你的本地的maven库
4.最后一步———->进行false,创建完成
### 三.你的maven项目全部文件解析(这个md没有编译过来布吉岛为什么)
![img](https://i-blog.csdnimg.cn/blog_migrate/8055a646f47bd60d95a13dab735d294c.png)
四.maven多模块思想
1.概念!
继承:创建一个parent工程将所需的依赖都配置在pom中
聚合:聚合多个模块运行
2.流程
2-1:1. 需求拆分
Dao service(zip) web
何为继承:继承就是为了消除重复
何为聚合:项目开发通常是分组模块开发,每个模块开发完成要运行整个工程需要将每个模块聚合在一起运行
五,创建步骤
1.创建父工程
![img](https://i-blog.csdnimg.cn/blog_migrate/bfba9982c3664b3f881e5eaee5ded5e3.png)
![img](https://i-blog.csdnimg.cn/blog_migrate/fb30f8725d2a44da4a2b2e6a40eedf8d.png)
2.将父工程发布至仓库
![img](https://i-blog.csdnimg.cn/blog_migrate/55a4c51d1d08663a0b8ed03960a4f26d.png)
![img](https://i-blog.csdnimg.cn/blog_migrate/8d3828c1a84801282a39988b89bacb6a.png)
3.创建dao子模块(各模块只放和自己相关代码注意:选择骨架直接下一步!来进行编译子模块)
![img](https://i-blog.csdnimg.cn/blog_migrate/ab4206278ec80c6fe3e2cccc16d93d6d.png)
![img](https://i-blog.csdnimg.cn/blog_migrate/c0523a52b7e4c1bf695d3305f0d76b68.png)
4.测试
![img](https://i-blog.csdnimg.cn/blog_migrate/1c10f57c71b55d017053a9986e7b51ec.png)
上图报错的解决办法(将新建的模块 调至一样的JDK版本)
![img](https://i-blog.csdnimg.cn/blog_migrate/f32f8f8ac17f7140067fdf8bfb03c89d.png)
![img](https://i-blog.csdnimg.cn/blog_migrate/8ee1c8e94404bcfc0d3b229dc6b5b720.png)
5.发布模块至本地仓库
![img](https://i-blog.csdnimg.cn/blog_migrate/55a4c51d1d08663a0b8ed03960a4f26d.png)
![img](https://i-blog.csdnimg.cn/blog_migrate/eda451f6b87e5df2b35d057f9efbe1d6.png)
6.创建Biz子模块(注意:选择骨架直接下一步!来进行编译子模块)
![img](https://i-blog.csdnimg.cn/blog_migrate/29c30aeb79299adf545e75520606a2bf.png)
![img](https://i-blog.csdnimg.cn/blog_migrate/294c97dca9ef0a63e3617c765b3f2612.png)
![img](https://i-blog.csdnimg.cn/blog_migrate/a813c5402f276671cab5be884a352496.png)
7.创建Web模块
7-1 .同时右击创建
![img](https://i-blog.csdnimg.cn/blog_migrate/ab4206278ec80c6fe3e2cccc16d93d6d.png)
7-2.选择web-app的骨架来进行创建
![img](https://i-blog.csdnimg.cn/blog_migrate/256083af8fc231f9146e9cd01b8d0429.png)
附:maven管理的SSM项目的pom.xml文件解析
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!--json-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.8.6</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.8.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.5</version>
</dependency>
<!--servlet-api的包(httprequest和respones中里使用)-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- Spring核心 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.6</version>
</dependency>
<!--2. SpringDAO层依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.1.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<!--springWeb的依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.1.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.3.RELEASE</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
<!--mybatis的依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.3</version>
</dependency>
<!--MyBatis整合spring的适配包-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.3</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<!--mysql数据库驱 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.41</version>
</dependency>
<!--EL表达式-->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<!-- jstl页面的依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>