在eclipse中使用Maven分模块搭建SSM框架,创建jar、war、pom工程模块教学,项目的热部署,需要的可以留下邮箱,给大家发整理过的Maven笔记
第一章:Maven概述
(1)Maven是一个项目构建工具,由apache提供,用Java开发的
(2)构建工具:Ant(蚂蚁),Maven(专家)
(3)构建工具作用:帮助程序员进行项目的创建,目录的创建、代码的编译,执行,测试,打包...
(4)传统构建的缺陷:
a:项目之间的依赖不方便,只能通过导包的形式建立关联
b:不能实时更新代码
c:导包方式麻烦,需要自己下载jar进行导入
d:当导入的jar包比较多时,容易发生包的重复,相同包的不同版本,jar包之间版本兼容问题
(5)Maven当前最新版本为3.6.1,本文章使用3.3.9
第二章:Maven常用配件概念
(1)仓库,Repository,用于存放所有的jar包
a:中央仓库,由apache官方提供,境外网址,下载速度慢
b:镜像仓库,由各个国家地区为国内程序员提供的仓库,阿里巴巴
c:本地仓库,jar包永远从本地仓库获取
(2)坐标
a:groupid:组编号,通常是逆向的公司域名
b:artifactid:项目的名称
c:version:版本号
查询jar包坐标的网址:
官网: https://mvnrepository.com/
阿里: https://maven.aliyun.com/mvn/search
第三章:创建Maven工程_jar类型
注:Maven插件、本地仓库(包括jar包),在文章末尾会有网盘下载链接,注意下载
3.1:配置my eclipse运行环境
(1)编码方式:UTF-8(包括Workspace、css、HTML、JSP、XML的编码格式)
(2)检查jdk版本:1.8
注:最好不要使用系统默认的JDK,使用本地安装的JDK,否则工程运行会报错
(3)配置tomcat
(4)个人爱好配置:
a:字体设置
b:去除拼写检查
c:更换工程格式为Package Explorer
3.2:下载Maven并解压
3.3:在eclipse中集成Maven
3.3.1:在eclipse中加载Maven安装目录
注意:在加载完成后,不要立即去创建Maven工程,否则会造成Eclipse卡顿
3.3.2:配置Maven信息
(1)指定Maven的配置文件settings.xml
(2)配置本地仓库位置
E:\Repository
(3)配置镜像仓库位置
用阿里巴巴的仓库,国内仓库,网速快
<!-- 配置镜像仓库地址 -->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
(4)配置jdk:
<!-- 指定jdk版本 -->
<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>
3.3.3:创建Maven工程
分三种类型:
(1)jar:代表一个javase工程,将来Maven打包时会将这个工程打包成jar包
(2)war:代表一个web工程,打包成war包
(3)pom:表示一个逻辑工程,工程中只做项目管理,不做代码编写
pom:Project Object Model,可以将一个工程当成一个对象
Group Id:表示路径Id别的项目通过此ID进行定位本项目
Artifact Id:工程名称
Version:版本号
0.0.1-SNAPHOT:表示当前工程处于修改阶段,不建议引用
当配置完成后,点击保存,系统就户i根据依赖配置去下载相关jar包,并加载到工程中
第四章:创建Maven工程_war类型
4.1:注意打包类型
(1)packading:war
(2)在项目创建成功后,生成web.xml 文件
(3)应该放在src/main/webapp/WEB-INF/web.xml
(4)建议自动生成,不建议手动创建目录,项目上右键->JavaEE Tools->Generate Deployment Descriptor Stub
4.2:添加项目依赖
(1)需要Tomcat支持,Maven中提供了Tomcat插件,每一个项目都可以有自己独特的Tomcat,便于独立开发某同事便于分布式开发
(2)编码时需要依赖servlet-api.jar和jsp-api.jar
(3)需要依赖相关框架的jar包:spring,springmvc,mybatis...
<scope>test</scope>
表示该包只是在测试的时候生效,在项目运行和打包时不会生效
<scope>provided</scope>
表示该jar包只会在代码编写过程中和编译中生效,不会打包到jar包中
<scope>compile</scope>
表示该包在所有阶段都会有效,包括项目打包阶段,为默认值
<scope>runtime</scope>
表示该包只是在运行时有用,比如数据库驱动包
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.1.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.1.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.13</version>
</dependency>
<!-- SpringMVC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.6.RELEASE</version>
</dependency>
<!-- jackson -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.3</version>
</dependency>
<!-- MaBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<!-- web -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax-servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- commons -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
<!-- log -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
</dependency>
<!-- Junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
4.4:运行
maven build
输入命令:clean tomcat7:run
第五章:创建pom工程
5.1:pom工程简介
(1)pom工程是一个逻辑工程,只做项目的管理,不做代码的编写
(2)pom工程通常适一个父工程,拥有多个子工程
(3)pom工程中可以对jar包进行统一管理,子工程可以无需再配置jar包
5.2:pom工程常用标签
(1)因为子工程可能有多个,而多个子工程不可能用到所有负工程中定义的jar包,所以,可以在pom工程中通过<dependencyManagment>标签对jar包进行统一管理
(2)使用<dependencyManagement>标签定义的依赖,只做声明,并不会直接使用,如果需要使用,还是需要通过配置<dependency>标签,父工程中国统一声明依赖,可以有效的集中控制依赖(版本)
(3)使用<properties>标签对依赖jar包的版本进行控制,例如:
<properties>
<spring-version>4.1.6-release</spring-version>
</properties> <version>${spring-version}</version>
第六章:Maven工程间的三种关系
6.1:依赖关系
依赖关系是最弱的一种关系,有A和B两个工程,A工程中需要使用B工程中定义的属性或方法,那么,此时我们说A依赖B
6.2:继承关系
例如有A和B两个工程,B工程继承A工程,要求A工程必须是一个pom工程
在当前工程坐标中,如果groupId和version跟父工程相同,那么可以省略
6.3:聚合关系
聚合关系要求必须是先有继承关系,聚合关系要比积尘搞关系更紧密
将一个大型工程,拆分成多个小工程,这几个小工程合起来是一个工程
创建聚合工程的方式:
(1)先创建一个顶级工程,该工程必须是pom工程
(2)在顶级工程的基础上创建Maven Module
第七章:聚合工程的创建演示
7.1:项目拆分分析
一个项目,有按功能拆分和按层次拆分两种,本次练习按照前台项目和后台项目进行拆分
SSM聚合工程,结构:
(1)顶级工程
名称:project-ssm
类型:pom
pom.xml:所有依赖的管理
(2)实体类模块
名称:ssm-pojo
类型:jar
(3)数据访问模块
名称:ssm-mapper
类型:jar
pom.xml
(4)后台系统
名称:ssm-management
类型:pom
(5)后台系统的控制器模块
名称:management-controller
类型:war
pom.xml
(6)后台系统的服务模块
名称:management-service
类型:jar
pom.xml
(7)后台系统的服务实现模块
名称:management-service-impl
类型:jar
pom.xml
7.2:项目拆分步骤实施
web工程在运行前,需要将整个工程安装在本地仓库
<!-- 添加依赖 -->
<!-- 管理jar包版本 -->
<properties>
<spring-version>4.1.6.RELEASE</spring-version>
<aspectj-version>1.8.13</aspectj-version> <jackson-version>2.7.3</jackson-version> <mybatis-version>3.4.6</mybatis-version>
<mybatis-spring-version>1.3.2</mybatis-spring-version> <mysql-version>5.1.38</mysql-version> <servlet-api-version>2.5</servlet-api-version>
<jsp-api-version>2.1</jsp-api-version> <jstl-version>1.2</jstl-version> <fileupload-version>1.3.1</fileupload-version> <lang3-version>3.4</lang3-version> <log4j12-version>1.7.25</log4j12-version> <junit-version>4.12</junit-version>
</properties>
<dependencyManagement>
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj-version}</version>
</dependency> <!-- SpringMVC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring-version}</version>
</dependency>
<!-- jackson -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson-version}</version>
</dependency>
<!-- MaBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis-version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis-spring-version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-version}</version>
<scope>runtime</scope>
</dependency> <!-- web -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>${servlet-api-version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>${jsp-api-version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>${jstl-version}</version>
</dependency> <!-- commons -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>${fileupload-version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${lang3-version}</version>
</dependency> <!-- log -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${log4j12-version}</version>
</dependency> <!-- Junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit-version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement> <build>
<pluginManagement>
<plugins>
<plugin>
<!-- Tomcat插件 -->
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<!-- 配置tomcat -->
<configuration>
<path>/</path>
<port>80</port>
</configuration>
</plugin>
</plugins>
</pluginManagement> </build>
第八章:Maven工程的热部署
8.1:热部署概念
热部署指的是通过Maven将项目远程部署到已经启动的服务器上的操作
需要借助tomcat默认提供的管理项目来实现,叫做manager
host-manager文件夹:是对Tomcat服务器进行管理
manager文件夹:是对部署到服务器上的项目进行管理
对于Tomcat7,使用管理器应用程序所需的角色已从各个大哥管理器角色更改为以下四个角色。如果需要分配你希望访问的功能所需的角色;
manager-gui:允许访问HTML、GUI和状态页面
manager-script:允许访问文本界面和状态页面
manager-jmx:允许访问JMX代理和状态页面
manager-status:仅允许访问状态页面
在D:\Java_SoftWare\apache-tomcat-7.0.53-windows-x64\apache-tomcat-7.0.53\conf,修改tomcat-users.xml配置文件
<role rolename="manager-gui" />
<role rolename="manager-script" />
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script"/>
8.2:热部署实施步骤
方法一:页面操作
地址栏输入:http://localhost:8080/manager
然后输入用户名,密码,进入页面进行项目的部署和管理
方法二:脚本命令操作
<!-- 配置tomcat -->
<configuration>
<path>/</path>
<port>80</port>
<!-- 配置热部署 -->
<url>http://192.168.57.165:8080/manager/text</url>
<username>tomcat</username>
<password>tomcat</password>
</configuration>
输入:
如果是第一次部署,输入:clean tomcat7:deploy
如果将项目修改,进行再次部署,输入:clean tomcat7:redeploy
注:
Maven插件及本地jar包仓库下载:
链接:https://pan.baidu.com/s/1vB_S1A7mvADtrkxn1IEtbw
提取码:ij5z
在eclipse中使用Maven分模块搭建SSM框架,创建jar、war、pom工程模块教学,项目的热部署,需要的可以留下邮箱,给大家发整理过的Maven笔记的更多相关文章
- 从零搭建SSM框架(二)运行工程
启动cnki-manager工程 1.需要在cnki-manager 的pom工程中,配置tomcat插件.启动的端口号,和工程名称. 在cnki-manager的pom文件中添加如下配置: < ...
- Eclipse中使用Maven搭建SSM框架
Eclipse中不使用Maven搭建SSM框架:https://www.cnblogs.com/xuyiqing/p/9569459.html IDEA中使用Maven搭建SSM框架:https:// ...
- 使用Maven搭建SSM框架(Eclipse)
今天学习一下使用Maven搭建SSM框架,以前都是用别人配置好的框架写代码,今天试试自己配置一下SSM框架. 这里我的参数是Windows7 64位,tomcat9,eclipse-jee-neon- ...
- Maven项目搭建(二):Maven搭建SSM框架
上一章给大家讲解了如何使用Maven搭建web项目. 这次给大家介绍一下怎么使用Maven搭建SSM框架项目. 首先我们来看一下pom.xml的属性介绍: project: pom的xml根元素. p ...
- 使用maven搭建ssm框架的javaweb项目
目前主流的javaweb项目,常会用到ssm(Spring+Spring MVC+Mybatis)框架来搭建项目的主体框架,本篇介绍搭建SSM框架的maven项目的实施流程.记之共享! 一.SSM框架 ...
- 使用maven搭建SSM框架
使用maven搭建SSM框架,首先得准备好maven环境. 搭建maven环境 第一步:下载maven http://maven.apache.org/download.cgi 下载后解压就可以了. ...
- 详解intellij idea搭建SSM框架(spring+maven+mybatis+mysql+junit)(下)
在上一篇(详解intellij idea 搭建SSM框架(spring+maven+mybatis+mysql+junit)(上))博文中已经介绍了关于SSM框架的各种基础配置,(对于SSM配置不熟悉 ...
- 详解intellij idea搭建SSM框架(spring+maven+mybatis+mysql+junit)(上)
SSM(Spring+SpringMVC+MyBatis)框架集由Spring.SpringMVC.MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架. 其中spring是一个轻 ...
- Maven环境下搭建SSH框架之Spring整合Hibernate
© 版权声明:本文为博主原创文章,转载请注明出处 1.搭建环境 Spring:4.3.8.RELEASE Hibernate:5.1.7.Final MySQL:5.7.17 注意:其他版本在某些特性 ...
随机推荐
- Vue项目零碎知识(全局js,css配置,element-UI,bs使用, img动态配置,js数组)
全局css样式,首先在静态assets中写好文件,然后要在main.js中配置 // 配置全局css样式 // import '@/assets/css/global.css' require('@/ ...
- LG2512/BZOJ1045 「HAOI2008」糖果传递 中位数
问题描述 LG2512 BZOJ1045 题解 这是一个链状问题的环状版本. 问题最终变为给定数轴上的\(n\)个点,找出一个到他们的距离之和尽量小的点,而这个点就是这些数中的中位数. 网络流24题的 ...
- springboot2.1+redis多数据源的配置
springboot系列学习笔记全部文章请移步值博主专栏**: spring boot 2.X/spring cloud Greenwich. 由于是一系列文章,所以后面的文章可能会使用到前面文 ...
- 毕业一年的大专生程序员工作总结(java后台)
文章导读 一.回眸过去-- 闲扯的话-- 零碎的技术 二.经验总结-- 沟通交流-- 贵在坚持-- 合理规划 三.展望未来-- 积累行业背景-- 学习清单 四.最后补充 一. 回牟过去 1.闲扯的话 ...
- Shell编程——test命令
1.整数 如果表达式为真返回值为0,如果表达式为假,返回值为1.test命令可以对整数.字符串.以及文件进行判断. -it:小于 -le:小于或等于 -gt:大于 -ge:大于或等于 -eq:等于 - ...
- Oracle 10G RAC集群安装
一,基本环境配置 01,hosts cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.loc ...
- ZJOI 2009 多米诺骨牌(状态压缩+轮廓线+容斥)
题意 https://www.lydsy.com/JudgeOnline/problem.php?id=1435 思路 一道很好的状压/容斥题,涵盖了很多比较重要的知识点. 我们称每两行间均有纵跨.每 ...
- LeetcCode 27:移除元素 Remove Element(python、java)
公众号:爱写bug 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) ...
- ascii码对照表(收藏)
https://blog.csdn.net/yueyueniaolzp/article/details/82178954 十进制代码 十六进制代码 MCS 字符或缩写 DEC 多国字符名 ASCII ...
- centos7.x下环境搭建(二)—nginx安装
上篇文章是对mysql的安装,接着上篇文章,这篇文章安装nginx服务 添加yum源 默认情况Centos7中无Nginx的源,最近发现Nginx官网提供了Centos的源地址.因此可以如下执行命令添 ...