Maven_刘锋的博客
文章目录
- 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中以菜单的形式出现,其实对应的是一个一个的命令,提高了开发效率
功能
- 依赖管理:maven工程对jar包的管理过程
- 一键构建:
什么是构建?
是指项目从编译、测试、运行、打包、安装、部署整个过程都叫给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的标准目录结构
- 核心代码部分 src/main/java目录
- 配置文件部分 src/main/resources
- 测试代码部分 src/test/java
- 测试配置文件部分 src/test/resources
- 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_刘锋的博客相关推荐
- MySQL_DQL数据查询语言_刘锋的博客
文章目录 DQL数据查询语言 进阶一:基础查询 进阶二:条件查询 进阶三:排序查询 进阶四:常见函数 一.单行函数 二.分组函数(聚合函数) 进阶五.分组查询 进阶六:连接查询(多表查询) sql92 ...
- Spring_刘锋的博客
文章目录 一.Spring 简介 maven配置 优点 组成 拓展 二.IOC理论推导 helloSpring beans.xml Hello.class MyTest.class dao的sprin ...
- JSON_刘锋的博客
文章目录 JSON 一.什么是JSON 1.创建一个js对象 2.将js对象转换为json对象 3.将json对象转换成js对象 test.html 二.Controller返回JSON数据 Jack ...
- MySQL_TCL事务控制语言_刘锋的博客
文章目录 TCL事务控制语言 一.事务的属性(ACIB) 原子性 一致性 隔离性 持久性 二.事务的创建 隐式的事务 显式的事务 三.事务的隔离级别 脏读: 不可重复度: 幻读: 四.delete和t ...
- JDBC_刘锋的博客
文章目录 JDBC 1.JDBC概述 2.获取数据库连接 3.使用preparedstatement实现CRUD操作 增加(Create) 更新(Update) 通用的增删(delete)改 检索(R ...
- jsp中Ajax请求发送PUT、DELETE请求的方式_刘锋的博客
jsp中Ajax请求发送PUT.DELETE请求的方式 方式一 首先配置pom.xml ,添加过滤器 <filter><filter-name>hiddenHttpMethod ...
- Lombok_刘锋的博客
文章目录 概念: 使用: 常用注解: 优点: 缺点: 1. JDK版本问题 2. 胁迫使用 3. 可读性差 4. 代码耦合度增加 概念: Lombok项目是一个Java库,它会自动插入编辑器和构建工具 ...
- SpringMVC_刘锋的博客
文章目录 一. 回顾servlet 创建maven项目 设置pom.xml依赖 创建普通的子项目,添加web框架支持 HelloServlet from.jsp test.jsp 二.初始Spring ...
- MySQL视图_刘锋的博客
文章目录 视图 创建视图 视图修改 视图的删除 查看视图 视图的更新 对比视图和表 视图 就是一个虚拟的表,有行有列 虚拟表是5.1之后出现的新特性,是通过普通表动态生成的数据,具有临时性的特点. 创 ...
最新文章
- 关于Redux的一些总结(一):Action 中间件 异步
- hdu 1102 pku 2421 解题报告
- kaggle数据集命令行下载
- 使用Express在Node.js中实现非常基本的路由
- linux中split分割文件打开方式,Linux系统下使用split命令分割大文件 (转载)
- threallocal详解
- php 字符 index,php函数之字符串篇String
- mysql获取分组后每组的最大值
- 出现红字是电脑问题吗_苹果12还会出现信号不好的问题吗?
- UDS诊断基础知识简介-ISO14229
- “十四五”国家应急体系规划发布 智慧应急成为总体建设目标之一
- pycharm专业版的破解
- 蜂鸣器驱动电路 专为机动车使用
- 组合测试法是什么 软件测试,组合测试模型方法
- 弗吉尼亚理工大学计算机科学,美国弗吉尼亚理工大学计算机科学本科.pdf
- widows安全策略
- C++快速入门学习笔记(一)
- web仿微信发朋友圈选择位置
- 百度云盘限速破解方式汇总
- C++封装dll供C#调用获取U盘/磁盘序列号信息
热门文章
- 如何快速找到微博热卖博主跟爆款商品?这个功能就可以!
- LaTeX/Bibliography Management latex 参考文献管理 bib
- 【centos7上装向日葵linux命令行版(先把结果交代在这:ssh远控功能收费。最后一步当我在向日葵使用ssh远程centos7时,发现它是收费的,我离完整体验就差9块钱)】
- 一个 TCP 连接可以发多少个 HTTP 请求
- SQL数据库损坏,数据库数据恢复!
- 超详细的ERP流程剖析!(建议收藏)
- Flink流处理Demo(含源码)
- JAVA中打印斐波拉契数列_java打印斐波那契数列
- C/C++自带十进制转其它进制函数接口itoa/_itoa_s
- Ant Design Vue中出现报错: Invalid prop: custom validator check failed for prop “pagination“