maven(项目管理)

maven

为什么使用maven

如果jar包都到各个官网网站下载,会浪费很多时间,而且可能不全。一个jar包依赖的其他jar包,可能没导入到项目,而导致项目跑不起来。而有些时候,根本搞不清楚一个jar包依赖了那些jar包。项目的jar包需要复制和粘贴到WEB-INF/lib下。同样的jar包重复出现在不同的工程中,一方面浪费空间,同时也让工程臃肿平时我们开发项目时,一般都是一个项目就是一个工程。我们划分模块时,都是使用package来进行划分。但是,当项目很大时,有很多子模块时,即使是package来进行划分,也是让人眼花缭乱。针对以上问题,现在最流行的解决方案就是maven

什么是maven?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EJECMrz8-1647446321477)(D:\dyit\20220219\doc\images\image-20220219082137577.png)]

maven的作用

Maven是面向技术层面,针对java开发的项目管理工具,它提供了构建工具所提供的功能,除了构建功能之外,maven还可以管理项目结构、管理依赖关系、生成报告、生成Web站点、有助于团队成员之间的协作。

项目构建

项目构建过程包括【清理项目】→【编译项目】→【测试项目】→【生成测试报告】→【打包项目】→【部署项目】这几个步骤,这六个步骤就是一个项目的完整构建过程。

理想的项目构建是高度自动化,跨平台,可重用的组件,标准化的,使用maven就可以帮我们完成上述所说的项目构建过程。

Maven将构建环节定义为有标准顺序的生命周期,执行构建命令时,每一次都是从生命周期最开始的位置,一直执行到命令指定位置。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nCguzRoo-1647446321487)(D:\dyit\20220219\doc\images\image-20220219082253201.png)]

清理[clean]:删除上一次编译得到的class字节码文件

编译[compile]:将Java源程序编译为class字节码文件。。

  • 主体程序编译
  • 测试程序编译

测试[test]:运行以前准备好的测试程序,验证代码是否正确

报告:测试报告

打包[package]

  • Java工程打jar包
  • Web工程打war包

安装[install]:将jar包或war包存入Maven仓库

部署[deploy]:将war包部署到服务器运行

依赖管理

开发项目工程需要依赖其他的项目(jar包),通过配置即可引入这些依赖jar包。

maven的配置文件看似很复杂,其实只需要根据项目的实际背景,设置个别的几个配置项而已。maven有自己的一套默认配置,使用者除非必要,并不需要去修改那些约定内容。这就是所谓的“约定优于配置”。

配置本地参考

仓库就是一个目录,这个目录被用来存储我们项目的所有依赖(插件的jar包还有一些其他的文件),简单的说,当你build一个Maven项目的时候,所有的依赖文件都会放在本地仓库里,仓库供所有项目使用。

maven会优先从本地仓库中寻找,如果没有则上网(中央仓库)下载。而且会将互联网中的jar缓存到本地仓库。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0VOc0qwD-1647446321490)(D:\dyit\20220219\doc\images\image-20220219082805069.png)]

配置本地仓库

创建本地仓库

在硬盘上创建本地仓库文件夹"maven-repository"。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OTAn5Qkv-1647446321492)(D:\dyit\20220219\doc\images\image-20220219083237312.png)]

定位配置文件位置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-itD1IqT1-1647446321494)(D:\dyit\20220219\doc\images\image-20220219083016019.png)]

更新本地仓库路径

默认路径[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZawIGIL9-1647446321495)(D:\dyit\20220219\doc\images\image-20220219083424068.png)]

  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  -->
 <localRepository>C:\\maven-repository</localRepository>
配置镜像仓库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MC65M3r4-1647446321495)(D:\dyit\20220219\doc\images\image-20220219084033684.png)]

<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>central</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

sts构建maven项目

配置sts的maven插件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8ZMTdnJO-1647446321497)(D:\dyit\20220220\doc\images\image-20220219140834339.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0xQus4tf-1647446321498)(D:\dyit\20220220\doc\images\image-20220220093712835.png)]

maven 构建javase项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vaP5E1p0-1647446321498)(D:\dyit\20220220\doc\images\image-20220220094532423.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Dxx6jCJs-1647446321500)(D:\dyit\20220220\doc\images\image-20220220095342356.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2sy9CRPk-1647446321501)(D:\dyit\20220220\doc\images\image-20220220094919612.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-flTrQEBH-1647446321502)(D:\dyit\20220220\doc\images\image-20220220095306566.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4KKI9uwL-1647446321504)(D:\dyit\20220220\doc\images\image-20220220100207555.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ggQEkEJ1-1647446321505)(D:\dyit\20220220\doc\images\image-20220220100545215.png)]

STS 图形化引入maven依赖

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vabf5wAz-1647446321506)(D:\dyit\20220220\doc\images\image-20220220103927563.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lmkwxqmk-1647446321506)(D:\dyit\20220220\doc\images\image-20220220104009746.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tKwG8GDy-1647446321508)(D:\dyit\20220220\doc\images\image-20220220104053383.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GJAZcTRM-1647446321509)(D:\dyit\20220220\doc\images\image-20220220104120692.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9obpjn3c-1647446321510)(D:\dyit\20220220\doc\images\image-20220220104209800.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DnuevRQQ-1647446321511)(D:\dyit\20220220\doc\images\image-20220220104307568.png)]

maven构建javaee项目

配置tomcat

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5Wb7WVz7-1647446321512)(D:\dyit\20220220\doc\images\image-20220220105033385.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SrRfi0WQ-1647446321513)(D:\dyit\20220220\doc\images\image-20220220105102391.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ttUPRsCp-1647446321514)(D:\dyit\20220220\doc\images\image-20220220105143006.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fPIT4xnb-1647446321515)(D:\dyit\20220220\doc\images\image-20220220105225949.png)]

创建maven项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nw8Bmjfl-1647446321517)(D:\dyit\20220220\doc\images\image-20220220105307696.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5hIsEpTC-1647446321518)(D:\dyit\20220220\doc\images\image-20220220105340915.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vhdmkBmu-1647446321519)(D:\dyit\20220220\doc\images\image-20220220105421638.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LE7DxRzv-1647446321520)(D:\dyit\20220220\doc\images\image-20220220105608479.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9tUISXVU-1647446321520)(D:\dyit\20220220\doc\images\image-20220220105935484.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gsu7Ng2T-1647446321521)(D:\dyit\20220220\doc\images\image-20220220110741936.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4RmavMdj-1647446321522)(D:\dyit\20220220\doc\images\image-20220220110932742.png)]

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hm0rY7yq-1647446321523)(D:\dyit\20220220\doc\images\image-20220220111015089.png)]

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qVlNYl90-1647446321523)(D:\dyit\20220220\doc\images\image-20220220111102495.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H4zjOQ0T-1647446321524)(D:\dyit\20220220\doc\images\image-20220220111154672.png)]

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
  <display-name>maven-ee</display-name>

</web-app>

基于maven的javaee项目开发

构建maven项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6vQRFdan-1647446321525)(D:\dyit\20220220\doc\images\image-20220220141951163.png)]

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.dyit.bims</groupId>
  <artifactId>bims-crud</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <dependencies>
  	<dependency>
  		<groupId>mysql</groupId>
  		<artifactId>mysql-connector-java</artifactId>
  		<version>8.0.28</version>
  	</dependency>
  	<dependency>
  		<groupId>org.mybatis</groupId>
  		<artifactId>mybatis</artifactId>
  		<version>3.5.9</version>
  	</dependency>
  	<dependency>
  		<groupId>com.alibaba</groupId>
  		<artifactId>druid</artifactId>
  		<version>1.2.8</version>
  	</dependency>
  	<dependency>
  		<groupId>log4j</groupId>
  		<artifactId>log4j</artifactId>
  		<version>1.2.17</version>
  	</dependency>
  	<dependency>
  		<groupId>org.projectlombok</groupId>
  		<artifactId>lombok</artifactId>
  		<version>1.18.22</version>
  	</dependency>
  	<dependency>
  		<groupId>com.google.code.gson</groupId>
  		<artifactId>gson</artifactId>
  		<version>2.8.9</version>
  	</dependency>
  	<dependency>
  		<groupId>junit</groupId>
  		<artifactId>junit</artifactId>
  		<version>4.12</version>
  		<scope>test</scope>
  	</dependency>
  </dependencies>
</project>

单例类 MybatisUtil加载

容器启动时加载:创建MybatisUtil对象

Servlet的监听器: 监听不同servlet的对象(ServletContext, Request, Session)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sY3BY6oR-1647446321525)(D:\dyit\20220220\doc\images\image-20220220143555864.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JZuyxFRj-1647446321528)(D:\dyit\20220220\doc\images\image-20220220143720693.png)]

@WebListener
public class BimsContextListener implements ServletContextListener {


    public void contextDestroyed(ServletContextEvent sce)  { 
        
    }

    public void contextInitialized(ServletContextEvent sce)  { 
        MybatisUtil.getInstance().init();
        Logger.getLogger(this.getClass()).debug("mybatis加载成功.....");
    }
	
}

数据库

书籍和出版社表分离,书籍和表之间多对一关联。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值