第一章 Maven概述

擅长管理大型项目
自动管理你需要的jar包
自动进行下载我们需要的jar包。

1 maven的概念

​ Maven是项目进行模型抽象,充分运用面向对象的思想,Maven可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。

说白了: ==Maven是由Apache开发的一个工具。==用来管理java项目, 依赖管理(jar包的管理),项目构建.

2 Maven的作用

  • 依赖管理: maven对项目的第三方构件(jar包)进行统一管理。向工程中加入jar包不要手工从其它地方拷贝,通过maven定义jar包的坐标,自动从maven仓库中去下载到工程中。

  • 项目构建: maven提供一套对项目生命周期管理的标准,开发人员、和测试人员统一使用maven进行项目构建。项目生命周期管理:编译、测试、打包、部署、运行。

  • maven对工程分模块构建,提高开发效率。

3 Maven的概念模型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DpQG5TOT-1591757069989)(day18_maven.assets/1530969038737.png)]

4 Maven的仓库

4.1 Maven的仓库

仓库名称 作用
本地仓库 相当于缓存,工程第一次会从远程仓库(互联网)去下载jar 包,将jar包存在本地仓库(在程序员的电脑上)。第二次不需要从远程仓库去下载。先从本地仓库找,如果找不到才会去远程仓库找。
中央仓库 就是远程仓库,仓库中jar由专业团队(maven团队)统一维护。中央仓库的地址:http://repo1.maven.org/maven2/
远程仓库(私服) 私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。当Maven须要下载构件的时候。它从私服请求,假设私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cJ4rKkkH-1591757069991)(day18_maven.assets/1530969111977.png)]

4.2 仓库中存放的内容

  • Maven自身运行所需要的插件
  • 第三方框架(spring/mybatis/springmvc)和工具类的jar包
  • 我们自己开发的maven项目安装后的jar包

5 maven的坐标

​ Maven的一个核心的作用就是管理项目的依赖,引入我们所需的各种jar包等。在Maven中,不论什么一个依赖、插件或者项目构建的输出, 都能够称之为构件。

​ 为了能自动化的解析任何一个Java构件. Maven必须将这些Jar包或者其他资源进行唯一标识,这是管理项目的依赖的基础,也就是我们要说的坐标。

​ 包括我们自己开发的项目,也是要通过坐标进行唯一标识的,这样才能才其它项目中进行依赖引用。坐标的定义元素如下:

  • groupId:项目组织唯一的标识符,实际对应JAVA的包的结构

    • (一般写公司的组织名称 例如:com.itheima,com.alibaba)
  • artifactId: 项目的名称
  • version:定义项目的当前版本

例如:要引入druid的jar包,只需要在pom.xml配置文件中配置引入druid的坐标即可:

<!--druid连接池-->
<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId>  <version>1.1.10</version>
</dependency>

第二章 maven的安装(软件)

1 下载maven

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y0VCiM3J-1591757069992)(day18_maven.assets/1571635692104.png)]

2 安装maven

将maven压缩包解压, 复制到没有中文没有空格的目录下,即安装完毕

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KsNFvwkf-1591757069995)(day18_maven.assets/1571635743923.png)]

3 maven的目录介绍

目录名 作用
bin 可执行指令
boot 第三方类的加载框架
conf 配置文件目录
lib maven自身的类库

4 配置环境变量

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YKy0PpS5-1591757069997)(day18_maven.assets/1571636629488.png)]

MAVEN_HOME=D:\01_install\03_kaifa\apache-maven-3.6.1
Path=%MAVEN_HOME%\bin;... ...

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XZ95w1Rb-1591757069998)(day18_maven.assets/1571636683606.png)]

5 配置本地仓库

1、找到Maven解压目录\conf\settings.xml
2、在setting.xml 文件中找到 localRepository 标签
3、将 <localRepository>/path/to/local/repo</localRepository>从注释中取出
4、将标签体内容修改为自定义的Maven仓库目录

2.5.1 将/资料/本地仓库/xxx.zip 解压

复制到 没有中文和空格 目录下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IiO3IIEn-1591757069999)(day18_maven.assets/1571637131430.png)]

2.5.2 配置本地仓库

在maven的安装目录中 maven/conf/settings.xml 配置本地仓库:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WAxATd8Q-1591757070000)(day18_maven.assets/1571637290924.png)]

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"><localRepository>D:\01_install\03_kaifa\repository_maven</localRepository>

2.5.3 配置阿里云远程仓库 (扩展)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-erflScAC-1591757070000)(day18_maven.assets/1571637387340.png)]

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

6 测试maven安装成功

打开cmd本地控制台, 输入

mvn -version

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bb6iad3v-1591757070001)(day18_maven.assets/1571637596719.png)]

7 小结

  1. Maven工具安装包 和 本地仓库解压到一个没有中文没有空格目录下. 建议分两个文件夹

  2. 配置Maven的时候(必须MAVEN_HOME)

    1. MAVEN_HOME: 配置到Maven工具解压目录
    2. path: 配置到Maven工具解压之后里面的bin目录

第三章 IDEA整合本地Maven

1 配置maven环境

方式一:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jB8ElGED-1591757070002)(day18_maven.assets/1571795547739.png)]

方式二

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TPTQxjP6-1591757070003)(day18_maven.assets/1571637961086.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vSNIhfZM-1591757070004)(day18_maven.assets/1571785194218.png)]

2 问题: 解决创建工程缓慢

因为 联网 下载内容, 所以 导致创建工程缓慢

-DarchetypeCatalog=internal

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-thMFY6y9-1591757070005)(day18_maven.assets/1571651141645.png)]

第四章 idea创建maven工程(重点重点重点)

1 创建空的工程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WIdMQdpx-1591757070006)(day18_maven.assets/1571638978518.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oSYgSoBE-1591757070007)(day18_maven.assets/1571639060631.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MAWTw46e-1591757070007)(day18_maven.assets/1571639097047.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FG3CzwD8-1591757070008)(day18_maven.assets/1571639128629.png)]

2 创建跳过骨架的java项目

2.1 how

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dVFbwDvr-1591757070009)(day18_maven.assets/1571639192677.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DKSGb9X3-1591757070010)(day18_maven.assets/1571639234551.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UbA9p98c-1591757070010)(day18_maven.assets/1571639808115.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u7Dlwjq7-1591757070011)(day18_maven.assets/1571639845612.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xxjMWdFe-1591757070012)(day18_maven.assets/1571639911574.png)]

目录 作用
main/java 存放java代码
resources 存放配置文件的
test/java 存放测试java代码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9iVlPL8W-1591757070013)(day18_maven.assets/1571639974745.png)]

2.2 创建java代码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ogwfs71x-1591757070014)(day18_maven.assets/1571640197272.png)]

package cn.itcast;public class ProductDao {public void add() {System.out.println("1 添加商品 ... ...");}public void del() {System.out.println("2 删除商品 ... ...");}public void update() {System.out.println("3 修改商品 ... ...");}public void queryAll() {System.out.println("4 查询所有商品 ... ...");}
}

2.3 生成测试代码

正式上线前, 每个方法都必须经过测试, 目前我们能够想到的就是main方法.

因为一个类只有一个main方法, 一个类可能有上千个方法, 那得需要多少个方法, 所以 迫切需要更高效方法, junit测试登场了.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l6nYQvNg-1591757070015)(day18_maven.assets/1571640260878.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f0y0rfzd-1591757070016)(day18_maven.assets/1571640299024.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CeikPVzo-1591757070016)(day18_maven.assets/1571640360185.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TZNJyX3t-1591757070017)(day18_maven.assets/1537362379635.png)]

为什么junit报红? 因为缺少junit包, 导入缺少的junit包即可.

2.4 导入依赖

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g5efkuxF-1591757070018)(day18_maven.assets/1571640422448.png)]

<?xml version="1.0" encoding="UTF-8"?>
<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>cn.itcast</groupId><artifactId>day1801</artifactId><version>1.0-SNAPSHOT</version><dependencies><!--导入junit包--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency></dependencies>
</project>

报红解决:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9B7hIa7U-1591757070019)(day18_maven.assets/1571640449058.png)]

2.5 一个一个测试

完成测试代码:

package cn.itcast;import org.junit.Test;public class ProductDaoTest {private ProductDao productDao = new ProductDao();@Testpublic void add() {productDao.add();}@Testpublic void del() {productDao.del();}@Testpublic void update() {productDao.update();}@Testpublic void queryAll() {productDao.queryAll();}
}

2.6 测试所有

一个一个测试,太累了, 给大家介绍一个简单的.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qhsPmnYa-1591757070020)(day18_maven.assets/1571640789291.png)]

3 创建有骨架 java工程(了解)

3.1 how?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u4xap3NL-1591757070021)(day18_maven.assets/1571643211567.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YMPJNeJo-1591757070022)(day18_maven.assets/1571643255407.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4UM24F1R-1591757070023)(day18_maven.assets/1571643318618.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rM0eDnze-1591757070023)(day18_maven.assets/1571643469936.png)]

* 缺少 resources目录 补上

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5jL9bF2A-1591757070024)(day18_maven.assets/1571643618970.png)]

pom.xml中会产生很多多余的配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-754yA0HV-1591757070025)(day18_maven.assets/1571643672589.png)]

总结: 因为创建有骨架的java工程会产生很多多余的配置, 所以实际开发中一般不用.

4 创建有骨架的web工程(了解)

4.1 how?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WAC3GUmu-1591757070026)(day18_maven.assets/1571643983838.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gs6HRJtu-1591757070027)(day18_maven.assets/1571644003571.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Usny9Y05-1591757070028)(day18_maven.assets/1571644017266.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-230sQ3kq-1591757070029)(day18_maven.assets/1571644028167.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LgKY8kub-1591757070030)(day18_maven.assets/1571644081864.png)]

4.2 标准web工程目录结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZS7tBlMS-1591757070031)(day18_maven.assets/1537365617727.png)]

经过对比发现如下问题:

4.3 缺少java目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6HKzdgn4-1591757070032)(day18_maven.assets/1537365726887.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8FX7GKbW-1591757070033)(day18_maven.assets/1537365747597.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TLBrXW8j-1591757070034)(day18_maven.assets/1537365811337.png)]

更改java目录属性

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YUQlwDJy-1591757070035)(day18_maven.assets/1537365915916.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VjbzoVSy-1591757070035)(day18_maven.assets/1537365941638.png)]

4.4 缺少resources目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1d8iDamu-1591757070036)(day18_maven.assets/1537365960822.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1kThbC0N-1591757070037)(day18_maven.assets/1537365982221.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uTxeiz2H-1591757070038)(day18_maven.assets/1537365994589.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G1qHjyOL-1591757070039)(day18_maven.assets/1537366029843.png)]

4.5 缺少test目录

4.5.1 新建test目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k4NpZ0rj-1591757070040)(day18_maven.assets/1537366119328.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aeOgsD6D-1591757070040)(day18_maven.assets/1537366137117.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pxj6s4KY-1591757070041)(day18_maven.assets/1537366151796.png)]

4.5.2 新建test.java目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MMuLU34o-1591757070042)(day18_maven.assets/1537366176109.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hMtr7c66-1591757070043)(day18_maven.assets/1537366192184.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P9joMhmB-1591757070044)(day18_maven.assets/1537366210414.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pIHHgy7p-1591757070044)(day18_maven.assets/1537366237164.png)]

总结: 使用骨架创建的web项目 在开发时不常用!理由1: 在pom.xml增加不必要的配置理由2: 完整的web工程缺的东西太多!

5 创建跳过骨架的web工程(重点重点重点)

5.1 创建无骨架的java工程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-13zOr5mq-1591757070045)(day18_maven.assets/1571644419657.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IeTOwIyY-1591757070046)(day18_maven.assets/1571644449059.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u6m3Xhle-1591757070047)(day18_maven.assets/1571644473424.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K1iFNSR4-1591757070048)(day18_maven.assets/1571644497436.png)]

修改打包方式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6lnczjgT-1591757070048)(day18_maven.assets/1571644641270.png)]

标准web项目的目录结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1a6NcWVT-1591757070050)(day18_maven.assets/1537365617727.png)]

5.2 问题: 缺少webapp 目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qg0QBq2U-1591757070051)(day18_maven.assets/1571644992692.png)]

5.3 问题: 缺少 web.xml

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H5aKJH3f-1591757070052)(day18_maven.assets/1571645289905.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bQPwmn2G-1591757070052)(day18_maven.assets/1571645306990.png)]

5.4 tomcat插件

5.4.1 在pom.xml中配置

因为 web项目最终跑在web服务器中, 所以需要配置 web服务器(tomcat只是其中一个)

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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>cn.itcast.maven</groupId><artifactId>web02</artifactId><version>1.0-SNAPSHOT</version><!--java工程: jar 含义是 java rarweb工程: war 含义是 web rar--><packaging>war</packaging><!--配置插件--><build><plugins><!-- 配置Tomcat插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><!--配置端口号--><port>80</port><!--配置项目路径--><path>/day1804</path></configuration></plugin></plugins></build>
</project>

5.4.2 准备index.html

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zgdzzYZK-1591757070053)(day18_maven.assets/1571645670350.png)]

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><h1>这是我的第一个maven版本的web项目!</h1>
</body>
</html>

5.4.3 启动tomcat

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6H4u5CrR-1591757070054)(day18_maven.assets/1571645721863.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s9MazFhG-1591757070055)(day18_maven.assets/1571645760741.png)]

测试:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0Rg5jJQ0-1591757070055)(day18_maven.assets/1571645800246.png)]

5.4.4 简化启动tomcat

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gF6iZ9Sh-1591757070056)(day18_maven.assets/1571646401841.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qmWvk89f-1591757070057)(day18_maven.assets/1571646440164.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IWK0DbWN-1591757070057)(day18_maven.assets/1571646512205.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AQaw2Kuy-1591757070058)(day18_maven.assets/1571646600055.png)]

4.6.3 创建servlet

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4j2KBlEP-1591757070059)(day18_maven.assets/1571646808325.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t3alz01Q-1591757070059)(day18_maven.assets/1571646885072.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LNNMzKn7-1591757070060)(day18_maven.assets/1571646966414.png)]

4.6.3.1 解决servlet因为缺少servlet.jar包报错

在pom.xml增加servlet依赖

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sksIk9Sr-1591757070061)(day18_maven.assets/1571647275049.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OgZJ5huk-1591757070063)(day18_maven.assets/1571647302251.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8LDwHFxr-1591757070064)(day18_maven.assets/1571647352446.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M3E2PKTx-1591757070065)(day18_maven.assets/1571647411268.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ebf2F3yG-1591757070066)(day18_maven.assets/1571647528706.png)]

<?xml version="1.0" encoding="UTF-8"?>
<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>cn.itcast</groupId><artifactId>day1804</artifactId><version>1.0-SNAPSHOT</version><!--修改web项目的打包方式--><packaging>war</packaging><dependencies><!--引入servlet依赖--><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><!--只在测试和编译时有效--><scope>provided</scope></dependency></dependencies><!--配置插件--><build><plugins><!-- 配置Tomcat插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><!--配置端口号--><port>80</port><!--配置项目路径--><path>/day1804</path></configuration></plugin></plugins></build></project>

经过观察,servlet不再报错

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zip956ZQ-1591757070069)(day18_maven.assets/1571647734636.png)]

测试:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jklwpgKX-1591757070070)(day18_maven.assets/1571647714708.png)]

第五章 maven的常用指令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2azvI4rh-1591757070072)(day18_maven.assets/1571647994685.png)]

1 clean命令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FUL3H9za-1591757070072)(day18_maven.assets/1530977033459.png)]

1.1 方式一

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pjIXUhHY-1591757070073)(day18_maven.assets/1571648094960.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EDMiKqkT-1591757070074)(day18_maven.assets/1571648143525.png)]

发现 target目录 被 清除了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oAkFFgCF-1591757070075)(day18_maven.assets/1571648180288.png)]

1.2 方式二

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dkV5Xgbd-1591757070076)(day18_maven.assets/1571813451648.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qbBwpd9X-1591757070076)(day18_maven.assets/1571648740838.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lvlBvqP3-1591757070077)(day18_maven.assets/1571649010223.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FUUESocZ-1591757070078)(day18_maven.assets/1571649184818.png)]

执行清屏命令:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XA8NhGOp-1591757070079)(day18_maven.assets/1571649234950.png)]

经过观察发现target目录消失:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ork9Ecg1-1591757070079)(day18_maven.assets/1571649285060.png)]

2 compile命令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yXxiqAsx-1591757070080)(day18_maven.assets/1530977220710.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FFLFHiPn-1591757070081)(day18_maven.assets/1571649436088.png)]

3 test命令

测试命令: 执行 src/test/java 下junit的测试用例

  • 准备工作1: 业务类

    package cn.itcast.service;public class UserService {public void add() {System.out.println("=============1 UserService.add 天生傲娇 ... ...");}public void queryAll() {System.out.println("=============2 UserService.queryAll ... ...");}
    }
    
  • 准备工作2: 测试类

    package cn.itcast.service;import org.junit.Test;public class UserServiceTest {private UserService userService = new UserService();@Testpublic void add() {userService.add();}@Testpublic void queryAll() {userService.queryAll();}
    }
    
  • 测试:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lvqFaQDb-1591757070081)(day18_maven.assets/1571649973784.png)]

4 package命令

mvn package, 打包项目

4.1 对java项目打包

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-03s2KVny-1591757070084)(day18_maven.assets/1571650068040.png)]

4.2 对web项目打包

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dzE0WArt-1591757070084)(day18_maven.assets/1571650191556.png)]

5 install命令

mvn install, 打包后将其安装在本地仓库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FDdrxulG-1591757070085)(day18_maven.assets/1571650295273.png)]

安装完毕后,可以在本地仓库中找到 对应的项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nNAOh0Yc-1591757070086)(day18_maven.assets/1571650412338.png)]

第六章 依赖管理

1 maven插件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ir1bFsko-1591757070087)(day18_maven.assets/1530978764025.png)]

1.1 jdk编译版本的插件

pom.xml

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LF5qMVz4-1591757070087)(day18_maven.assets/1571650607384.png)]

            <!-- java编译插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.2</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c9d3kL1M-1591757070088)(day18_maven.assets/1571650718594.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OgeBZ4JA-1591757070089)(day18_maven.assets/1571650688355.png)]

1.2 tomcat7服务端的插件

  • 配置tomcat插件
<!-- 配置Tomcat插件 -->
<plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><!--配置端口号--><port>80</port><!--配置项目路径--><path>/day1804</path></configuration>
</plugin>
  • 运行tomcat插件

    • 方式一

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t0QwG3ML-1591757070090)(day18_maven.assets/1571813786908.png)]

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p3g8Rkrt-1591757070091)(day18_maven.assets/1571651442564.png)]

    • 方式二

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KLC7n4Fn-1591757070091)(day18_maven.assets/1571651462914.png)]

  • tomcat 插件注意问题

    Maven的中央仓库中只有tomcat7.X版本

    如果想使用tomcat8.X版本,

    1. 需要从第三方仓库查找
      2. 或者使用idea集成外部的tomcat插件

2 导入依赖

2.1 导入junit依赖

  • 导入junit坐标
<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency>
</dependencies>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dxY2jIp2-1591757070092)(day18_maven.assets/1530980380837.png)]

  • 进行单元测试
import org.junit.Test;public class DemoTest {@Testpublic void demo1() {System.out.println("敢于亮剑,绝不后退!");}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9p1r7Bak-1591757070092)(day18_maven.assets/1530980434008.png)]

2.2 导入servlet的依赖

  • 创建servlet, 但是发现报错,原因是没有导入servlet的坐标依赖

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-85T5WPMg-1591757070093)(day18_maven.assets/1530980596377.png)]

  • 导入servlet的坐标依赖
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope>
</dependency>
  • 原有的servlet报错恢复正常

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6NWyAtS2-1591757070094)(day18_maven.assets/1530980728536.png)]

3 依赖范围

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y04EoQm7-1591757070095)(day18_maven.assets/1530980805944.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qR8KnAQc-1591757070095)(day18_maven.assets/1530980856407.png)]

第七章 maven案例: 完成用户列表显示功能

1 需求分析

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QQeyqoZw-1591757070096)(day18_maven.assets/1531021609684.png)]

2 准备工作

2.1 sql语句

create database day18_db;use day18_db;create table user(id int primary key auto_increment,name varchar(50),money int
);insert into user(id, name, money) values(null, '张三', 1000);
insert into user(id, name, money) values(null, '李四', 1000);
insert into user(id, name, money) values(null, '王五', 1000);

2.2 创建项目(跳过骨架的java项目)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5OhJXbwX-1591757070097)(day18_maven.assets/1571652093789.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6I9jHNTL-1591757070098)(day18_maven.assets/1571652122987.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3n7Vn6u3-1591757070099)(day18_maven.assets/1571652156154.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tNVcWupz-1591757070100)(day18_maven.assets/1571652239439.png)]

2.3 添加webapp目录 和 web.xml文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9Vpe9jZm-1591757070100)(day18_maven.assets/1571652573617.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sQC1FWMg-1591757070101)(day18_maven.assets/1571652825828.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V2XCwIOd-1591757070101)(day18_maven.assets/1571652856355.png)]

2.4 导包(pom.xml)

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://maven.apache.org/POM/4.0.0"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>cn.itcast</groupId><artifactId>day1805</artifactId><version>1.0-SNAPSHOT</version><!--因为当前项目是web项目, 所以设置为 war--><packaging>war</packaging><!-- 1 导入依赖--><dependencies><!--servlet--><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><!--junit测试--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.38</version></dependency><!-- Mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.5</version></dependency><!--日志--><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.6.4</version></dependency><!--jackson --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.4.2</version></dependency></dependencies><!-- 2 配置插件--><build><plugins><!-- java编译插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.2</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><!-- 配置Tomcat插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><!--配置端口号--><port>9000</port><!--配置项目路径--><path>/day1805</path></configuration></plugin></plugins></build></project>

3 实现

3.1 数据层

3.1.1 接口

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EmJSOo6W-1591757070102)(day18_maven.assets/1571656978762.png)]

package cn.itcast.mapper;import cn.itcast.pojo.User;import java.util.List;public interface UserMapper {/*查询所有*/public List<User> queryAll();}

3.1.2 配置文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XIEYtayz-1591757070103)(day18_maven.assets/1571657003788.png)]

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.itcast.mapper.UserMapper"><!--查询所有用户--><select id="queryAll" resultType="User">select * from tb_user</select>
</mapper>

3.2 业务层

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tMCrzSRB-1591757070103)(day18_maven.assets/1571657032008.png)]

3.2.1 接口

package cn.itcast.service;import cn.itcast.pojo.User;import java.util.List;public interface UserService {/*** 查询所有*/public List<User> queryAll();
}

3.2.2 实现类

package cn.itcast.service.impl;import cn.itcast.base.BaseService;
import cn.itcast.mapper.UserMapper;
import cn.itcast.pojo.User;
import cn.itcast.service.UserService;
import org.apache.ibatis.session.SqlSession;import java.util.List;public class UserServiceImpl extends BaseService implements UserService {@Overridepublic List<User> queryAll() {SqlSession sqlSession = getSession();UserMapper userMapper = getDao(sqlSession, UserMapper.class);List<User> userList = null;try {userList = userMapper.queryAll();commitAndCloseSession(sqlSession);} catch (Exception e) {e.printStackTrace();rollbackAndCloseSession(sqlSession);}return userList;}
}

3.2.3 测试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pQpqtAQ7-1591757070104)(day18_maven.assets/1571657054504.png)]

package cn.itcast.service;import cn.itcast.pojo.User;
import cn.itcast.service.impl.UserServiceImpl;
import org.junit.Test;import java.util.List;public class UserServiceTest {@Testpublic void queryAll() {UserService userService = new UserServiceImpl();List<User> userList = userService.queryAll();for (User user : userList) {System.out.println(user);}}
}

3.3 web层

3.3.1 代码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mX1aUOhF-1591757070105)(day18_maven.assets/1571657338301.png)]

package cn.itcast.web;import cn.itcast.pojo.User;
import cn.itcast.service.UserService;
import cn.itcast.service.impl.UserServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;@WebServlet("/userQueryAll")
public class UserQueryAllServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 解决获取参数的中文乱码 (浏览器 -> 服务器)request.setCharacterEncoding("utf-8");// 解决浏览器出现的中文乱码response.setContentType("text/html;charset=utf-8");// 1 调用业务层 查询所有用户UserService userService = new UserServiceImpl();List<User> userList = userService.queryAll();// 2 将所用用户集合 转成json字符串ObjectMapper objectMapper = new ObjectMapper();String json = objectMapper.writeValueAsString(userList);// 3 将json字符串返回给浏览器response.getWriter().println(json);}@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}
}

3.3.2 重启测试

http://localhost:9000/day1805/userQueryAll

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QZzxRoUi-1591757070106)(day18_maven.assets/1571657403652.png)]

3.4 页面

3.4.1 导入依赖的js文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lEq1FnBB-1591757070106)(day18_maven.assets/1571657999128.png)]

3.4.2 页面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ckY9o1A7-1591757070107)(day18_maven.assets/1571658039345.png)]

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<div id="app"><table align="center" border="1" cellpadding="10" cellspacing="0" width="50%"><tr><th>编号</th><th>姓名</th><th>存款</th><th>操作</th></tr><tr v-for="user in userList"><td>{{user.id}}</td><td>{{user.name}}</td><td>{{user.money}}</td><td><a href="javascript:void(0)">删除</a><a href="javascript:void(0)">修改</a></td></tr></table>
</div>
<script src="js/vue.min.js"></script>
<script src="js/axios-0.18.0.js"></script>
<script src="js/user.js"></script>
</body>
</html>

3.4.3 测试

http://localhost:9000/day1805/userList.html

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WTJvwha4-1591757070108)(day18_maven.assets/1571658074491.png)]

第八章 常见问题汇总

1 tomcat插件重复启动:导致端口占用
2 index.html放到WEB-INF下面,导致访问不到这个html页面
3 名称不叫index.html,结果直接输入localhost:8080,访问不到这个页面
4 关联了jre,需要使用JDK
5 需要使用我给的仓库

第九章 继承

1 why?

需求:

​ a项目 需要mysql包

​ b项目 需要mysql包

​ c项目 需要mysql包

​ 都需要,所以需要配置三次

问题:

​ 重复的代码配置了三次, 次数 100万个项目, 配置100万次

解决:

​ 继承了, 拥有了父类的一切

2 how

2.1 父pom文件

<?xml version="1.0" encoding="UTF-8"?>
<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>cn.itcast</groupId><artifactId>itcast_parent</artifactId><version>1.0-SNAPSHOT</version><properties><servlet.version>3.1.0</servlet.version><mysql.version>5.1.32</mysql.version><jackson.version>2.5.2</jackson.version></properties><!--问题: 如果父模块有100万个jar包, 而子模块只需要其中的一个, 冲突了--><!--解决: 将依赖管理--><dependencyManagement><dependencies><!--servlet--><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>${servlet.version}</version><scope>provided</scope></dependency><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><!--jackson --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>${jackson.version}</version></dependency></dependencies></dependencyManagement><!--父工程 管理插件--><build><plugins><!-- java编译插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.2</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin></plugins><pluginManagement><plugins><!-- 配置Tomcat插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version></plugin></plugins></pluginManagement></build></project>

2.2 子pom文件

<?xml version="1.0" encoding="UTF-8"?>
<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"><parent><artifactId>itcast_parent</artifactId><groupId>cn.itcast</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>itcast_dao</artifactId><dependencies><!--mysql问题: 父模块有100万个子模块, 如何给一个地方就可以修改所有子模块的版本--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><!--如果子模块发现父模块的版本低, 但是又不能改父模块的版本, 手动修改自己的jar包版本--><version>5.1.38</version></dependency><!--servlet--><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><scope>provided</scope></dependency><!--jackson --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId></dependency></dependencies></project>

第十章 聚合工程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1w1GnJma-1591757070109)(day18_maven.assets/1571822613116.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VuoIgwCs-1591757070109)(day18_maven.assets/1571822628116.png)]

1 分析

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GexJatEm-1591757070110)(day18_maven.assets/1535444139772.png)]

2 创建父工程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qcq9NWwc-1591757070112)(day18_maven.assets/1571757683359.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fXCN6xQR-1591757070113)(day18_maven.assets/1571757866402.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-so7yB9ip-1591757070114)(day18_maven.assets/1571757725403.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GDRIra05-1591757070114)(day18_maven.assets/1571757742830.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N9n3SVnR-1591757070115)(day18_maven.assets/1571757786813.png)]

2.1 删除src目录

因为这个项目的唯一作用是用来管理版本的, 所以删掉没有用的src目录

删除完成,如下图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vpSnd9Zm-1591757070115)(day18_maven.assets/1571757918526.png)]

2.2 修改pom.xml管理版本

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://maven.apache.org/POM/4.0.0"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>cn.itcast.itheima</groupId><artifactId>itheima_parent</artifactId><version>1.0-SNAPSHOT</version><!--pom表示这是一个被继承的模块--><packaging>pom</packaging><!-- 集中定义依赖版本号 --><properties><junit.version>4.12</junit.version><servlet.version>3.1.0</servlet.version><mysql.version>5.1.38</mysql.version><mybatis.version>3.4.5</mybatis.version><slf4j.version>1.6.4</slf4j.version><jackson.version>2.4.2</jackson.version></properties><!-- 1 导入依赖--><dependencyManagement><dependencies><!--junit测试--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version></dependency><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><!-- Mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><!--日志--><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${slf4j.version}</version></dependency><!--jackson --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>${jackson.version}</version></dependency><!--servlet--><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>${servlet.version}</version><scope>provided</scope></dependency></dependencies></dependencyManagement><!-- 2 配置插件--><build><plugins><!-- java编译插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.2</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin></plugins><pluginManagement><plugins><!-- 配置Tomcat插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version></plugin></plugins></pluginManagement></build></project>

3 数据层子模块

3.1 创建子模块项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gUCVwLMd-1591757070116)(day18_maven.assets/1571758247586.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b88Y7T72-1591757070116)(day18_maven.assets/1571758275176.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Oju9Rric-1591757070117)(day18_maven.assets/1571758344641.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NgOD0n5x-1591757070118)(day18_maven.assets/1571758387771.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h6wNUu6w-1591757070118)(day18_maven.assets/1571758456799.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HdBkvSkg-1591757070119)(day18_maven.assets/1571758486904.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iZk4drrc-1591757070119)(day18_maven.assets/1571758524723.png)]

3.2 pom.xml

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CzPj3g5F-1591757070120)(day18_maven.assets/1571758543316.png)]

<?xml version="1.0" encoding="UTF-8"?>
<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"><parent><artifactId>itheima_parent</artifactId><groupId>com.itheima</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>itheima_dao</artifactId><!--java项目--><packaging>jar</packaging><dependencies><!--junit测试--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!-- Mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId></dependency><!--日志--><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></dependency></dependencies>
</project>

3.3 复制内容到 src 目录下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-83VP9I1W-1591757070121)(day18_maven.assets/1571758721673.png)]

3.4 复制内容到 resources 目录下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0VB8zu2D-1591757070121)(day18_maven.assets/1571758801627.png)]

3.5 测试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7OTuh4Dx-1591757070122)(day18_maven.assets/1571759032005.png)]

package cn.itcast.mapper;import cn.itcast.pojo.User;
import cn.itcast.utils.SqlSessionUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Before;
import org.junit.Test;import java.util.List;public class UserMapperTest {UserMapper userMapper;SqlSession sqlSession;@Beforepublic void init() throws Exception {sqlSession = SqlSessionUtils.openSession();userMapper = sqlSession.getMapper(UserMapper.class);}@Testpublic void queryAll() {List<User> userList = userMapper.queryAll();for (User user : userList) {System.out.println(user);}}
}

4 业务层子模块

4.1 创建子模块项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8TLRgfN3-1591757070122)(day18_maven.assets/1571759263156.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RwFcmFEg-1591757070123)(day18_maven.assets/1571759290140.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lK8nr2Qd-1591757070124)(day18_maven.assets/1571759357195.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kKl1koO2-1591757070124)(day18_maven.assets/1571759386610.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LGMmZCRH-1591757070125)(day18_maven.assets/1571759436199.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-asbHGzz3-1591757070125)(day18_maven.assets/1571759477172.png)]

4.2 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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"><parent><artifactId>itheima_parent</artifactId><groupId>com.itheima</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>itheima_service</artifactId><dependencies><!--引入dao依赖--><dependency><artifactId>itheima_dao</artifactId><groupId>com.itheima</groupId><version>1.0-SNAPSHOT</version></dependency><!--junit测试--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency></dependencies></project>

4.3 复制内容到src目录下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4en9aDFR-1591757070126)(day18_maven.assets/1571759626148.png)]

4.4 测试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CtIqlE1C-1591757070126)(day18_maven.assets/1571759666090.png)]

package cn.itcast.service;import cn.itcast.pojo.User;
import cn.itcast.service.impl.UserServiceImpl;
import org.junit.Test;import java.util.List;public class UserServiceTest {@Testpublic void queryAll() {UserService userService = new UserServiceImpl();List<User> userList = userService.queryAll();for (User user : userList) {System.out.println(user);}}
}

5 web层工程

5.1 创建子模块

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EzplvhOF-1591757070127)(day18_maven.assets/1571759773164.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yjNXchaw-1591757070128)(day18_maven.assets/1571759811629.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CG4yluJO-1591757070128)(day18_maven.assets/1571759839291.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6l2dm6rV-1591757070129)(day18_maven.assets/1571759871194.png)]

5.2 改造成web项目

5.2.1 pom文件

<?xml version="1.0" encoding="UTF-8"?>
<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"><parent><artifactId>itheima_parent</artifactId><groupId>com.itheima</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>itheima_web</artifactId><!--因为当前模块是web项目,所以指定为war包--><packaging>war</packaging><build><plugins><!-- 配置Tomcat插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><!--指定项目路径--><path>/</path><!--指定端口号--><port>9000</port></configuration></plugin></plugins></build></project>

5.2.2 补充webapp目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lQqEjVmB-1591757070130)(day18_maven.assets/1571761310525.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vA2UjtgZ-1591757070131)(day18_maven.assets/1571761420838.png)]

5.2.3 增加测试页面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-buNH2LxY-1591757070132)(day18_maven.assets/1571761705542.png)]

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><h1>敢于亮剑,绝不后退!</h1>
</body>
</html>

5.2.4 启动tomcat 方式一

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oPVGWAJZ-1591757070132)(day18_maven.assets/1571761772983.png)]

测试:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oFM9B7j2-1591757070133)(day18_maven.assets/1571762003244.png)]

5.2.5 启动tomcat方式二

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-feRedYsP-1591757070133)(day18_maven.assets/1571762143716.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MV5y9c7k-1591757070134)(day18_maven.assets/1571762259914.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w8LZgPwt-1591757070135)(day18_maven.assets/1571762287940.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tn02l3dV-1591757070136)(day18_maven.assets/1571762332956.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KnsO1yI1-1591757070137)(day18_maven.assets/1571762502256.png)]

5.3 调试 Servlet

5.3.1 pom.xml

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PKM4gZlI-1591757070138)(day18_maven.assets/1571762839168.png)]

<?xml version="1.0" encoding="UTF-8"?>
<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"><parent><artifactId>itheima_parent</artifactId><groupId>com.itheima</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>itheima_web</artifactId><!--因为当前模块是web项目,所以指定为war包--><packaging>war</packaging><build><plugins><!-- 配置Tomcat插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><!--指定项目路径--><path>/</path><!--指定端口号--><port>9000</port></configuration></plugin></plugins></build><dependencies><!--jackson --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId></dependency><!--servlet--><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><scope>provided</scope></dependency></dependencies></project>

5.3.2 编写servlet

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8YO1gomA-1591757070138)(day18_maven.assets/1571762910622.png)]

package cn.itcast.web;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;@WebServlet("/hello")
public class HelloServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 解决获取参数的中文乱码 (浏览器 -> 服务器)request.setCharacterEncoding("utf-8");// 解决浏览器出现的中文乱码response.setContentType("text/html;charset=utf-8");response.getWriter().println("你们真的很棒!");}@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}
}

5.3.3 测试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gbP1DJzL-1591757070139)(day18_maven.assets/1571762961879.png)]

5.4 复制对应内容到web目录下

5.4.1 复制 servlet到web目录下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eqkCP8wp-1591757070140)(day18_maven.assets/1571763283828.png)]

5.4.2 pom.xml 增加业务层依赖

<?xml version="1.0" encoding="UTF-8"?>
<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"><parent><artifactId>itheima_parent</artifactId><groupId>com.itheima</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>itheima_web</artifactId><!--因为当前模块是web项目,所以指定为war包--><packaging>war</packaging><build><plugins><!-- 配置Tomcat插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><!--指定项目路径--><path>/</path><!--指定端口号--><port>9000</port></configuration></plugin></plugins></build><dependencies><!--jackson --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId></dependency><!--servlet--><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><scope>provided</scope></dependency><!--引入业务层依赖--><dependency><artifactId>itheima_service</artifactId><groupId>com.itheima</groupId><version>1.0-SNAPSHOT</version></dependency></dependencies></project>

5.4.3 启动tomcat报错

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zXjiTDMQ-1591757070141)(day18_maven.assets/1571763398714.png)]

  • 原因: 因为仓库中没有 service 的 jar包

  • 解决:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3kQL4B31-1591757070142)(day18_maven.assets/1571764006201.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A0bJNtJk-1591757070143)(day18_maven.assets/1571763708953.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LhylmNBu-1591757070144)(day18_maven.assets/1571763542436.png)]

再次启动正常, 测试:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MPuS4M1M-1591757070144)(day18_maven.assets/1571764065291.png)]

5.5 聚合

问题

每次发布项目都需要依次发布 父模块和依赖的模块, 是不是很麻烦

解决

通过聚合交给父模块管理,一次性发布所有的项目

how

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SXBsxKA1-1591757070145)(day18_maven.assets/1571764692138.png)]

.org/xsd/maven-4.0.0.xsd">

itheima_parent
com.itheima
1.0-SNAPSHOT

4.0.0

<artifactId>itheima_web</artifactId><!--因为当前模块是web项目,所以指定为war包-->
<packaging>war</packaging><build><plugins><!-- 配置Tomcat插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><!--指定项目路径--><path>/</path><!--指定端口号--><port>9000</port></configuration></plugin></plugins>
</build><dependencies><!--jackson --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId></dependency><!--servlet--><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><scope>provided</scope></dependency><!--引入业务层依赖--><dependency><artifactId>itheima_service</artifactId><groupId>com.itheima</groupId><version>1.0-SNAPSHOT</version></dependency></dependencies>

```

5.4.3 启动tomcat报错

[外链图片转存中…(img-zXjiTDMQ-1591757070141)]

  • 原因: 因为仓库中没有 service 的 jar包

  • 解决:

    [外链图片转存中…(img-3kQL4B31-1591757070142)]

    [外链图片转存中…(img-A0bJNtJk-1591757070143)]

    [外链图片转存中…(img-LhylmNBu-1591757070144)]

再次启动正常, 测试:

[外链图片转存中…(img-MPuS4M1M-1591757070144)]

5.5 聚合

问题

每次发布项目都需要依次发布 父模块和依赖的模块, 是不是很麻烦

解决

通过聚合交给父模块管理,一次性发布所有的项目

how

[外链图片转存中…(img-SXBsxKA1-1591757070145)]

用 Maven来管理java项目相关推荐

  1. 计算机毕业设计-ssm饮用水配送管理系统代码-javaweb在线配送桶装水管理系统-水站配送管理java项目

    计算机毕业设计-ssm饮用水配送管理系统代码-javaweb在线配送桶装水管理系统-水站配送管理java项目 注意:该项目只展示部分功能,如需了解,评论区咨询即可. 作者:IT跃迁谷 1.开发环境 开 ...

  2. Jenkins+maven+SVN构建java项目中遇到的问题及解决

    Jenkins+maven+SVN构建java项目中遇到的问题及解决 参考文章: (1)Jenkins+maven+SVN构建java项目中遇到的问题及解决 (2)https://www.cnblog ...

  3. 使用Maven管理Java项目

    一.Maven入门 1.下载maven Maven是基于项目对象模型(Project Object Model),可以通过一小段描述信息来管理项目的构建.报告和文档的项目管理工具,提供了一个仓库的概念 ...

  4. 使用maven管理Java项目依赖

    概念 Maven是java的一个依赖管理工具.所谓依赖就是指在Java开发过程中引入的各种jar包和第三方库,而可能这些库本省还要引用其他的库,这样我们直接引用的称为直接依赖,库的依赖称为间接依赖.如 ...

  5. java美容美发项目下载_基于jsp的美容美发管理-JavaEE实现美容美发管理 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的美容美发管理, 该项目可用各类java课程设计大作业中, 美容美发管理的系统架构分为前后台两部分, 最终实现在线上 ...

  6. 运动会成绩管理java代码_基于jsp的运动会成绩管理-JavaEE实现运动会成绩管理 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的运动会成绩管理, 该项目可用各类java课程设计大作业中, 运动会成绩管理的系统架构分为前后台两部分, 最终实现在 ...

  7. java学生考勤代码免费,基于jsp的学生考勤管理-JavaEE实现学生考勤管理 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的学生考勤管理, 该项目可用各类java课程设计大作业中, 学生考勤管理的系统架构分为前后台两部分, 最终实现在线上 ...

  8. java招生系统项目_基于jsp的招生管理-JavaEE实现招生管理 - java项目源码

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的招生管理, 该项目可用各类java课程设计大作业中, 招生管理的系统架构分为前后台两部分, 最终实现在线上进行招生 ...

  9. Java水费代收_基于jsp的水费管理-JavaEE实现水费管理 - java项目源码

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的水费管理, 该项目可用各类java课程设计大作业中, 水费管理的系统架构分为前后台两部分, 最终实现在线上进行水费 ...

  10. java用代码实现星期菜谱,基于jsp的家庭食谱管理-JavaEE实现家庭食谱管理 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的家庭食谱管理, 该项目可用各类java课程设计大作业中, 家庭食谱管理的系统架构分为前后台两部分, 最终实现在线上 ...

最新文章

  1. 【C++】利用构造函数对类对象进行初始化
  2. 企业网络推广浅析外包企业网络推广如何有效布局关键词优化?
  3. minimun-depth-of-binary-tree
  4. 简单的面试题简解思路(搜集)
  5. phpcmsV9支付: 支付宝支付配置 (资源汇总)
  6. debian9.8无法切换中文输入法
  7. 2008年12月信息处理技术员上午试卷 51CTO版参考答案
  8. 如何开启/关闭Pages文稿上的字数统计功能?
  9. altium Designer布等长线、蛇形线
  10. 博图导入的程序用step7读出_博图编程与STEP7编程区别
  11. 傅里叶变换到拉普拉斯变换及收敛域分析
  12. 【2020年TI杯江苏省大学生电子设计竞赛回顾——C题:坡道行驶电动小车(江苏省二等奖)】
  13. linux下重启tomcat命令
  14. CAD坐标系(UCS)
  15. 自我思考:世界观与方法论——关于做事方法,情商,智商,爱商的深入思索
  16. K-means(tri)利用三角不等式性质加速k-means
  17. VBA学习笔记4:将同一文件下的多个工作簿的数据汇总为一个工作表
  18. 便签记事内容怎么放到手机桌面上?
  19. linux系统ps命令的参数a与-a表示的讨论
  20. 在网商大会上马云的讲话

热门文章

  1. 【实战案例】利用Python做出趣味版防沉迷小程序
  2. html开源flash视频播放器代码下载
  3. 小白文件管理器共享服务器,在WIN7下使用小白文件管理器局域网功能(SMB)的教程...
  4. Android 电视 文件目录,智能电视三款良心文件管理软件,操作攻略指南
  5. 手机群控系统OpenSTF
  6. 数据库编程之ODBC编程
  7. PyQt4入门教程(1)_PyQt介绍及准备工作
  8. 计算机快速扫描技术的优点是,与传统扫描仪比较起来高拍仪的优点有哪些?
  9. java初级工程师职责_Java初级开发工程师工作的岗位职责
  10. NATAPP使用教程(内网穿透)