文章目录

  • ANT
  • 概述
  • 功能
  • 安装
  • 种类和之间的关系
    • 本地仓库
    • 远程仓库
    • 中央仓库
    • 设置本地仓库路径
  • Maven的标准目录结构
  • Maven常用的命令
  • Maven生命周期
  • Maven概念模型图
  • IDEA集成Maven
  • 骨架创建一个web工程项目
  • maven工程实例
    • Maven Web报错:Unable to compile class for JSP
    • 选择提高tomcat的版本或者降低jdk的版本
    • 配置活动模板
  • maven依赖范围
  • Maven连接数据库(JDBC)

ANT

Maven之前管理项目的技术,可以打包发布项目。

*.jar *.var 两种包

jar:

将java代码打包,提供给别的项目,我们用过mysql的jar包,给别人提供类文件

现在的微服务阶段,jar还可以作为运行的程序包。

两种作用:内容包、运行包

var:

主要是关于web的,可运行的程序包,一般var包需要一个web服务器,常见的web服务器有tomcat

现在用maven替代ant,用来管理项目中的jar包和发布项目,测试项目

概述

Maven作为一个构建工具,不仅能帮我们自动化构建,还能够抽象构建过程,提供构建任务实现;它跨平台,对外提供了一致的操作接口,这一切足以使它成为优秀的、流行的构建工具。

Maven不仅是构建工具,还是一个依赖管理工具和项目管理工具,它提供了中央仓库,能帮我自动下载构件。

有两种方式:

1、 下载maven软件,使用maven命令来实现

2、 使用idea里面的maven插件

maven中有些脚本在idea中以菜单的形式出现,其实对应的是一个一个的命令,提高了开发效率

功能

  1. 依赖管理:maven工程对jar包的管理过程
  2. 一键构建:

什么是构建?

是指项目从编译、测试、运行、打包、安装、部署整个过程都叫给maven来进行管理,这个过程就是构建。

安装

解压压缩包

配置环境变量

验证是否配置成功

种类和之间的关系

本地仓库

maven的本地仓库默认的是c盘,我们要把它改到其他的盘

远程仓库

中央仓库

全球有一个通用的仓库,但是现在国内的的用的基本那都是阿里的镜像maven

设置本地仓库路径

G:\maven_repository

全球的maven仓库

https://mvnrepository.com/

setting.xml 配置镜像的maven

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

Maven的标准目录结构

  1. 核心代码部分 src/main/java目录
  2. 配置文件部分 src/main/resources
  3. 测试代码部分 src/test/java
  4. 测试配置文件部分 src/test/resources
  5. src/main/webapp 页面资源,js,css,图片等

Maven常用的命令

mvn clean 删除编译

mvn compile 编译正式代码

mvn test 编译测试和正式代码

mvn package 编译并且打包

mvn install 完成上述动作,并且将项目放在本地仓库中

Maven生命周期

清理生命周期

clean 清除项目编译信息

1)pre-clean:执行清理前需要完成的工作

2)clean:清理上一次构建生成的文件

3)post-clean:执行清理后需要完成的工作

默认生命周期(default)

编译 测试 打包 安装 发布
compile test package install deploy

站点生命周期:建立和发布项目站点

1)pre-site:生成项目站点之前需要完成的工作

2)site:生成项目站点文档

3)post-site:生成项目站点之后需要完成的工作

4)site-deploy:将项目站点发布到服务器

Maven概念模型图

IDEA集成Maven

-DarchetypeCatalog=internal

骨架创建一个web工程项目

maven工程实例

双击可以自动执行命令

Maven Web报错:Unable to compile class for JSP

出现这个问题的原因是,tomcat的版本和jdk的版本不兼容,

选择提高tomcat的版本或者降低jdk的版本

<!--tomcat7-->
<plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><port>8888</port></configuration>
</plugin>
<!--jdk-->
<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>
</plugin>

在maven tomcat7运行时要输入:


配置活动模板

在xml可以快捷输入相应的代码块

maven依赖范围

Maven连接数据库(JDBC)

<!--mysql-->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version><scope>runtime</scope>
</dependency>
package com.itlf.dao.impl;import com.itlf.dao.BookDao;
import com.itlf.domain.Book;import java.sql.*;
import java.util.ArrayList;
import java.util.List;/*** Created with IntelliJ IDEA.** @author: LiuF* @date: 2021/5/14* @description:* @version: 1.0*/
public class BookDaoImpl implements BookDao {@Overridepublic List<Book> findAll() {/// 加载驱动Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;try {Class.forName("com.mysql.jdbc.Driver");// 获取connection对象conn = DriverManager.getConnection("jdbc:mysql:///test?useUnicode=true&characterEncoding=utf8","root","123456");// 获取操作对象String sql = "select * from book";ps = conn.prepareStatement(sql);// 数据库结果集rs = ps.executeQuery();//遍历结果集List<Book> list = new ArrayList<>();while (rs.next()) {Book book = new Book();book.setId((Integer) rs.getObject("id"));book.setbName(rs.getString("bName"));book.setPrice(rs.getString("price"));book.setAuthor(rs.getString("author"));list.add(book);}return list;} catch (Exception e) {e.printStackTrace();} finally {if (rs != null) {try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if (ps != null) {try {ps.close();} catch (SQLException e) {e.printStackTrace();}}if (conn != null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}return null;}
}
package com.itlf.test;import com.itlf.dao.BookDao;
import com.itlf.dao.impl.BookDaoImpl;
import com.itlf.domain.Book;
import org.junit.Test;import java.util.List;import static org.junit.Assert.*;/*** Created with IntelliJ IDEA.** @author: LiuF* @date: 2021/5/14* @description:* @version: 1.0*/
public class BookDaoImplTest {private BookDao bookDao = new BookDaoImpl();@Testpublic void findAll() {List<Book> bookList = bookDao.findAll();for (Book book : bookList) {System.out.println(book);}}
}

Maven_刘锋的博客相关推荐

  1. MySQL_DQL数据查询语言_刘锋的博客

    文章目录 DQL数据查询语言 进阶一:基础查询 进阶二:条件查询 进阶三:排序查询 进阶四:常见函数 一.单行函数 二.分组函数(聚合函数) 进阶五.分组查询 进阶六:连接查询(多表查询) sql92 ...

  2. Spring_刘锋的博客

    文章目录 一.Spring 简介 maven配置 优点 组成 拓展 二.IOC理论推导 helloSpring beans.xml Hello.class MyTest.class dao的sprin ...

  3. JSON_刘锋的博客

    文章目录 JSON 一.什么是JSON 1.创建一个js对象 2.将js对象转换为json对象 3.将json对象转换成js对象 test.html 二.Controller返回JSON数据 Jack ...

  4. MySQL_TCL事务控制语言_刘锋的博客

    文章目录 TCL事务控制语言 一.事务的属性(ACIB) 原子性 一致性 隔离性 持久性 二.事务的创建 隐式的事务 显式的事务 三.事务的隔离级别 脏读: 不可重复度: 幻读: 四.delete和t ...

  5. JDBC_刘锋的博客

    文章目录 JDBC 1.JDBC概述 2.获取数据库连接 3.使用preparedstatement实现CRUD操作 增加(Create) 更新(Update) 通用的增删(delete)改 检索(R ...

  6. jsp中Ajax请求发送PUT、DELETE请求的方式_刘锋的博客

    jsp中Ajax请求发送PUT.DELETE请求的方式 方式一 首先配置pom.xml ,添加过滤器 <filter><filter-name>hiddenHttpMethod ...

  7. Lombok_刘锋的博客

    文章目录 概念: 使用: 常用注解: 优点: 缺点: 1. JDK版本问题 2. 胁迫使用 3. 可读性差 4. 代码耦合度增加 概念: Lombok项目是一个Java库,它会自动插入编辑器和构建工具 ...

  8. SpringMVC_刘锋的博客

    文章目录 一. 回顾servlet 创建maven项目 设置pom.xml依赖 创建普通的子项目,添加web框架支持 HelloServlet from.jsp test.jsp 二.初始Spring ...

  9. MySQL视图_刘锋的博客

    文章目录 视图 创建视图 视图修改 视图的删除 查看视图 视图的更新 对比视图和表 视图 就是一个虚拟的表,有行有列 虚拟表是5.1之后出现的新特性,是通过普通表动态生成的数据,具有临时性的特点. 创 ...

最新文章

  1. 关于Redux的一些总结(一):Action 中间件 异步
  2. hdu 1102 pku 2421 解题报告
  3. kaggle数据集命令行下载
  4. 使用Express在Node.js中实现非常基本的路由
  5. linux中split分割文件打开方式,Linux系统下使用split命令分割大文件 (转载)
  6. threallocal详解
  7. php 字符 index,php函数之字符串篇String
  8. mysql获取分组后每组的最大值
  9. 出现红字是电脑问题吗_苹果12还会出现信号不好的问题吗?
  10. UDS诊断基础知识简介-ISO14229
  11. “十四五”国家应急体系规划发布 智慧应急成为总体建设目标之一
  12. pycharm专业版的破解
  13. 蜂鸣器驱动电路 专为机动车使用
  14. 组合测试法是什么 软件测试,组合测试模型方法
  15. 弗吉尼亚理工大学计算机科学,美国弗吉尼亚理工大学计算机科学本科.pdf
  16. widows安全策略
  17. C++快速入门学习笔记(一)
  18. web仿微信发朋友圈选择位置
  19. 百度云盘限速破解方式汇总
  20. C++封装dll供C#调用获取U盘/磁盘序列号信息

热门文章

  1. 如何快速找到微博热卖博主跟爆款商品?这个功能就可以!
  2. LaTeX/Bibliography Management latex 参考文献管理 bib
  3. 【centos7上装向日葵linux命令行版(先把结果交代在这:ssh远控功能收费。最后一步当我在向日葵使用ssh远程centos7时,发现它是收费的,我离完整体验就差9块钱)】
  4. 一个 TCP 连接可以发多少个 HTTP 请求
  5. SQL数据库损坏,数据库数据恢复!
  6. 超详细的ERP流程剖析!(建议收藏)
  7. Flink流处理Demo(含源码)
  8. JAVA中打印斐波拉契数列_java打印斐波那契数列
  9. C/C++自带十进制转其它进制函数接口itoa/_itoa_s
  10. Ant Design Vue中出现报错: Invalid prop: custom validator check failed for prop “pagination“