JavaWeb第二十一天

Maven

Maven可以解决的问题

jar包冲突,引用冲突
编译Java文件
一次性执行指定目录下的所有单元测试
打包项目

maven核心功能

依赖管理 maven工程对jar包的管理过程
使用maven开发相同框架,相同功能的crm项目所占空间比传统web工程开发的crm项目小得多
    传统web工程开发的crm项目,jar包在项目中
    maven开发的crm项目,jar包不在项目中,在jar包仓库中,编译运行项目时会根据项目中存放的jar包坐标找到jar包仓库中的jar包
一键构建
编译 测试 运行 打包 安装 部署等
不使用本地安装的tomcat,而是使用maven中集成的tomcat插件来构建项目
使用本地安装的tomcat
    将项目打包,放到tomcat安装目录的webapp文件夹下
    双击bin/startup命令,运行项目
使用maven
    maven项目中的pom.xml放置jar包坐标
    cmd进入项目目录
    输入命令mvn tomcat:run 运行项目 输出会提供一个访问地址

maven解压即安装

maven解压后的目录结构
    bin
        mvn.cmd 用于构建项目
    boot maven自身运行所需要的类加载器
    conf
        settings.xml 配置文件
    lib maven自身运行所依赖的jar包
解压后配置环境变量
    新建系统变量MAVEN_HOME 对应maven安装目录
    编辑path 加上%MAVEN_HOME%\bin
conf/settings.xml中的localRepository下的Default表示jar包本地仓库的地址
    修改本地仓库地址<localRepository>F:\maven\localRepository</localRepository>
    刚安装完maven,本地仓库local没有jar包,启动项目后根据jar包坐标先找本地仓库local,本地仓库local没有需要的jar包且电脑有网就去中央仓库central下载,没网就报错
    中央仓库放置了几乎所有开源jar包,实际开发用不到这么多
    公司会创建一个自己的远程仓库(私服)b2b,只要确保电脑和远程仓库在一个局域网,就可以直接通过局域网从远程仓库下载jar包,远程仓库没有需要的jar包会从中央仓库下载,也可以从本地仓库上传

maven标准目录结构

核心代码部分 打成jar包,发布到线上作为产品供用户使用,每次升级都需要重新打包
配置文件部分 不需要打包,只要重启项目,用于需要频繁修改的部分
测试代码部分
测试配置文件部分
src/main/java 核心代码
src/main/resources 配置文件
src/test/java 测试代码
src/test/resources 测试配置文件
以上是maven的Java工程,如果是maven的外部工程,还有src/main/webapp 放置页面资源js/css/图片等

maven常用命令

mvn clean 删除target目录,即之前编译得到的信息,接之前开发人员的项目时先将他的编译信息删除,然后再在我们自己的开发环境上运行一遍,因为不同的人的开发环境不一定相同,直接运行不一定能跑得通
mvn compile 编译src/main下的Java文件,生成target目录,其中classes有编译生成的class文件
mvn test 编译src/test和src/main下的Java文件,在target目录中生成classes和test-classes目录,其中有编译生成的class文件
mvn package 打包项目为war包 同时编译src/test和src/main下的Java文件
    pom.xml中<packaging>war<packaging>指定了打包的类型
mvn install 打包 and 编译main和test and 将war包安装到本地仓库
mvn deploy 打包 and 编译main和test and 将war包安装到本地仓库 and 安装 and 发布

maven生命周期

默认生命周期
    compile test package install deploy 后面的命令执行时都包括了前面的命令
清理生命周期
    clean 清除之前的编译信息,构建项目的准备工作
站点生命周期 使用得不多

maven概念模型图

项目对象模型(POM)
    pom.xml
        项目自身信息
        项目运行依赖的jar包信息
        项目运行环境信息 包括jdk和tomcat的信息
依赖管理模型(Dependency) 项目对jar包的管理过程
    jar包坐标
        <dependency>
            <groupid>javax.servlet.jsp</groupid> 公司
            <artifactid>jsp-api</artifactid> 项目名
            <version>2.0</version> 版本号
        </dependency>
每一个生命周期命令都对应着maven底层的一个插件,执行一个命令就对应着一个插件在工作

idea集成maven插件

安装maven
File/settings/Maven
    配置maven的安装路径Maven home directory、settings.xml的路径User settings file以及本地仓库的路径Local repository
    配置Runner下的VM Options为-DarchetypeCatalog=internal
        确保在不联网的情况下创建工程,只要之前联网下载过创建工程所需插件,就会直接在本地找到对应插件

创建maven工程

new Project->Maven
勾选create from archetype 使用骨架来创建项目
创建Java项目选中quickstart
填写组织名称 项目名 版本号
确定maven的安装目录 settings.xml的目录 本地仓库目录
Finish
默认只创建main和test两个目录,需要自己在main和test目录下创建配置文件目录,并右键mark directory as resources root标记为资源路径
创建Java项目推荐不使用骨架
创建web项目骨架选择webapp
创建web项目后修改pom.xml
    jdk版本
    junit版本
        删除pluginManagement标签

使用maven的Java工程获取MySQL数据 不适用模板

创建实体类
在pom.xml中加上mysql-connector-java的依赖
    scope标签
    大部分依赖使用默认,即compile,在编译 运行 测试时都起作用
    junit使用test
        servlet和jsp使用provided
    jdbc驱动包使用runtime,如和MySQL Oracle有关的包
注意:druid.properties配置文件要放在src/main/resources目录下
  引入依赖先在需要的文件中import 再根据标红的提示自动在pom.xml中导入依赖
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值