项目的管理工具 ----- Maven
Maven
内容管理
- Maven
- 构建项目
- 软件工程
- Maven工具的安装和配置
- Maven core
- POM 【program object model】项目对象模型
- 约定的目录结构 【maven编写项目的常见问题】
- 坐标gay
- 依赖管理【dependencies(管理)----> dependency(依赖从属)】
- 仓库管理
- 生命周期
- ....Maven常用的命令
- 插件
- 继承和聚合
- 单元测试框架Junit【测试方法】
Javaweb — 现在准备沉淀一下进入框架
Maven
JQuery虽然都说过时了,但是真的还是比JS高明了许多,特别是对于AJAX的简化;而JDK的动态代理则是基于反射实现了动态扩展而不改变原有的功能【但是必须要有接口】
maven是一个辅助的管理项目的工具【just 辅助】;最主要的功能–> 管理依赖(下载管理项目的jar包;Maven Repository: Search/Browse/Explore (mvnrepository.com);在这里面就可以找到;通过gruopId、artifactId、version可以唯一找到一个资源jar包);第二个便是项目的构建(编译、测试、打包、部署)
而其使用方式: 1. 通过命令行窗口使用lib命令完成比如编译命令【mvn -compile】来完成操作 2.配置开发工具使用,比如IDEA、Eclipse,非常简单快捷
Maven
在最开始写java的基础的简单的项目的时候,就会有提示,是否创建Maven,那么什么是Maven呢?
传统的项目 :
- 有很多模块、模块之间有关系、手工管理关系,比较繁琐
- 需要很多第三方功能,所以需要直到很多jar文件,需要从网络中获取各个jar,比如mysql,servlet等【jar文件中有很多的class类】
- 需要管理jar的版本,比如需要5.0,那就不能使用4.0的;因为版本冲突会出现问题
- 管理jar文件之间的依赖。比如要使用a.jar,必须使用b.jar中的类,必须要先得到b.jar,然后次啊能使用a.jar;a.jar和b.jar的关系就是依赖,就两者有关系就产生了依赖,比如a.jar依赖b.jar;项目依赖mysql驱动【因此开发项目需要对各jar包之间的依赖关系非常清楚,但这很耗费时间,所以如果能有工具帮忙就好了】
所以需要使用Maven来改进项目
- mavaen可以管理jar文件
- 自动下载jar和他的文档,源代码
- 管理jar直接的依赖,a.jar需要b.jar,maven会自动给下载b.jar
- 管理需要的jar的版本
- 自动编译程序和测试程序
- 帮助打包文件,形成jar文件、或者war文件
- 还能够帮助部署项目
这样开发者就只需要写功能代码即可
构建项目
构建是面向过程的,就是一些步骤,完成代码的编译、测试、运行、打包、部署等;maven支持的有
- 清理 : 将之前项目的编译的文件删除,为新的编译代码做准备
- 编译 :把程序源代码编译为执行代码,java—>class文件【这是批量操作,javac一次只能编译一个】
- 测试: maven可以只从测试程序代码,验证功能是否正确【批量操作,同时测试多个测试代码,测试多个功能】
- 报告 : 生成测试结果的文件,测试是否通过的信息
- 打包: 将项目中的所有的class文件,配置文件等所有资源放到一个压缩文件中,如果都是普通的java程序,那么就是jar文件,web应用就是war文件 ---- 一个文件就是一个独立的功能了
- 安装 : 将5中生成的压缩文件安装到本机仓库
- 部署: 把项目安装好可以执行
软件工程
再介绍这个知识之前,先来提出一个概念:软件工程【刚好下学期有这个课程,到时候会单独再介绍一下的】 日常生活中,有很多的工程项目,比如桥梁工程;工程就是各个行业的从业人员通过总结的规律和方法,以最小的代价做出最大的成效。 所谓的桥梁工程就是人们通过经验和总结得出的 — 用来建造桥梁最高效的方法,这种方法是可复用的。将这种思想抽象到软件领域,就变成了软件工程
软件工程 ---- 为了实现软件的流水线式生产,设计和构建软件时能够有一种规范和工程化的方法就是软件工程
完成一个java项目需要做的工作 :
分析项目的需求、分析功能 ----->设计项目,通过哪些步骤,使用哪些技术,需要多少人,多长的时间—> 组建团队、购置设备、服务器、…… ------> 开发人员需要测试自己的代码、重复多次的工作----> 测试人员进行测试 -----> 有问题返回给开发—>重复过程直到测试代码通过
Maven工具的安装和配置
首先就是在官网下载maven,因为下载的java的版本就很新,所以这里就直接下载的最新版本,如果到时候不兼容再说,下载的网址放到这里: Maven – Download Apache Maven
第二步就是解压缩安装包了;这里将其解压到一个给中文的目录;解压之后就可以发现其约定的目录结构了;真的和tomcat有些类似,下面有bin、boot、cong、lib等文件夹 — bin目录就是程序执行的命令,最主要的就是mvn.cmd;再conf中存放的是配置文件settings;lib中iu是很多的jar文件,maven是用java编写的,所以一定要有JDK才能够正常运行
最后就是要配置环境变量: 在系统的环境中,指定一个MAVEN_HOME的名称,其值为maven的安装路径,不到bin; 之后再在系统路径中增加%MAVEN_HOME%\bin
所谓的配置环境变量的目的就是为了更加方便执行程序的bin中的命令; 如果不配置只能到对应程序的bin目录下打开cmd窗口运行,配置之后就可以直接打开cmd窗口运行,从配置java、Mysql、Tomcat、Maven都是这个目的,先建立一个对应的HOME、路径为程序安装路径,bin的上一级目录; 之后再在路径中配置%?_HOME%/bin就算配置成功了
验证是否配置成功,就在cmd窗口中输入maven的命令, mvn -v
C:\Users\OMEY-PC>mvn -v;
Apache Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537)
Maven home: D:\Maven\apache-maven-3.8.4
Java version: 16, vendor: Oracle Corporation, runtime: D:\jdk-16
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
需要注意的是,这里一定要要有JDK的路径,不然maven是无法正常执行的
Maven core
POM 【program object model】项目对象模型
<?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.apche.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>
</project>可以看到这个xml文件的最高级的标签就是project --- 就是将项目给抽象成了一个模型
om.xml是Maven的核心;也就是将管理的项目看作一个模型
POM是一个文件,这个文件的名称为pom.xml;maven将一个项目当作一个模型来使用,通过这个文件可以控制maven构建项目的过程,管理jar的依赖;其中更可以配置各种标签,包括项目的坐标、JDK的版本、编译的encoding
其下由很多重要的标签
基本名称
:
- modelVersion : Maven模型的版本,对于maven2和maven3来说,就是4.0.0;就是给项目设定的版本就是4.0
- groupId : 组织ID,一般是公司域名的倒写,格式可以是域名倒写或者域名倒写+项目名 : 比如com.baidu; com.baidu.appole; per.cfeng.ICQ
- artifactID: 项目的名称,也就是模块module的名称【最开始创建项目的时候就将一个项目看成一个module】对应的groupId下面的子项目,这也是唯一的
- version : 项目的版本号,如果项目还在开发中,是不稳定版本,通常就在版本后带-SHAPSHOT; version使用三位数字表示; 1.1.0 ---- 代表项目迭代的版本
- packaging : 项目打包的类型 ,可以是jar包,war包【web应用】、ear包、pom包,默认是普通的java程序jar包
依赖
: dependencies ---- 管理 和dependency — 从属,依赖, : 项目要使用的各种资源的说明,比如要使用mysql驱动
因为这个pom.xml就是项目对象模型,其中最大的标签就是project;代表就是项目
- dependencies : 项目管理的所有的从属jar包,也就是依赖,,比如这里可以演示在pom.xml中配置一个mysql驱动 ; 以后就不需要将jar包一个一个导入到项目了,直接使用maven管理即可
<dependcies><!-- 依赖, 相当于在java代码中import配置jar包 --><dependency><!-- 通过标识可以在互联网中唯一标识一个资源 --><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.27</version></dependency>
</dependcies>
配置属性
- properties : 这个标签用来定义一些配置属性的,比如project.build.sourceEncoding【项目的编码方式】,可以设置为UTF-8,防止中文乱码,也可以定义相关构建版本号,便于统一升级;比如Java的版本
<properties><!-- 这里的{jdk_version}填入你的jdk版本,我使用的是openjkd16 --><maven.compiler.target>16</maven.compiler.target><maven.compiler.source>16</maven.compiler.source><!--指定项目的编码方式 --><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties>
构建
- build: 这个标签用来表示与构建相关的标签,比如设置编译插件的jdk版本,
项目的管理工具 ----- Maven相关推荐
- 使用Maven前夕(Maven项目架构管理工具、配置环境变量、阿里云镜像、本地仓库)
Maven Maven项目架构管理工具 目前用来就是方便导入jar包! Maven的核心思想:预定大于配置(有约束不要去违反) 需要按照Maven规范来编写Java代码 Maven官网:https:/ ...
- maven项目构建管理工具一站式全部搞定
内容目录 一.maven的概述 二.maven环境搭建 三.maven常用命令 四.maven的坐标和仓库 五.创建maven项目 六.创建maven web项目 概述: maven是基于项目对象模型 ...
- 9款最佳项目集管理工具
我们都知道市场上有非常多项目管理的工具,那么有哪些是具备项目集管理能力的工具?要识别这一点是非常有难度的.所以,本文将来盘点国内外9款最佳项目集管理工具. 2022年9大最佳项目集管理软件 1.国内最 ...
- OmniPlan Pro 4:项目流程管理工具
OmniPlan Pro 4是一款非常优秀的项目流程管理工具,帮助我们创建合乎逻辑的项目计划管理,OmniPlan 4 Mac 破解版全新设计,拖放支持更加简单,但却更加先进强大,它还能被用来优化资源 ...
- 项目流程管理工具OmniPlan Pro 4
Mac上有没有最好用的项目流程管理工具?omniplan mac po解包含自定检视表.阶层式的纲要模式.成本追踪.里程碑.任务限制与相关性.资源分配.时程控制.Gantt 图表.违反事项显示.关键路 ...
- 有什么项目工时管理工具?
"时间就是金钱",工时管理在企业项目管理中起着至关重要的作用,可以帮助管理者掌握员工工作时间使用情况,还可以及时核算人力资源成本,更好管控项目成本.人工手动统计工时的方法不仅浪费人 ...
- 统御软件 (oKit)| 项目管理软件,项目管理咨询,项目需求管理工具,集成研发管理平台 ——管理咨询与实施工具 一站式项目管理解决方案...
统御软件 (oKit)| 项目管理软件,项目管理咨询,项目需求管理工具,集成研发管理平台 --管理咨询与实施工具 一站式项目管理解决方案 统御软件 (oKit)| 项目管理软件,项目管理咨询,项目需求 ...
- 规范化管理的困惑、探索以及项目辅助管理工具的推荐
随着公司项目的增多,项目规模和人员规模的增大,原来那种七八个人,三五杆枪的小作坊经营模式已经非常不适用了,规范化管理也逐渐提上日程.但是什么是规范化管理,可能不同人就有不同的理解,这跟公司的人员构成. ...
- 软件项目开发管理工具
1.scrumwise/teambition(项目管理工具) 2.Review Board(代码审查工具) 3.Jenkins(自动化集成服务器工具) 4.MantisBT(bug管理工具) 5.Go ...
最新文章
- [Swift]LeetCode2. 两数相加 | Add Two Numbers
- 以Dubbo为例,聊聊如何为开源项目做贡献
- CreateThread()与beginthread()的区别详细解析
- 文章内部设置目录,锚点
- Web前端--HTML+CSS+JS实现3D立体魔方小游戏
- UEFI shell控制台向.efi文件传入参数--通过protocol实现
- Jrebel使用+激活码
- informatica学习1-数据仓库,ETL,数据仓库工具Informatica介绍
- dB, -3dB, -6dB相关知识
- 听风的插件-集成到设置中
- [总结自用]关于Mbps、Mb/s、MB/s以及Mpps的区别及计算
- HBASE学习使用经验
- 论文翻译(7)---Enriched Long-term Recurrent Convolutional Network for Facial Micro-Expression Recognition
- 第三方软件MOOS-IvP扩展
- 2022年初级会计职称考试会计实务练习题及答案
- 查找算法的实现c语言,查找算法的实现(C语言版)
- 干支纪年法简便算法_我国为何放弃黄帝纪年和孔子纪年,转而选择了耶稣诞辰纪年法?...
- 《万里长江图》告诉我们:金沙江是长江的正源
- 小程序miniprogram自动化上传,不需要依赖微信开发者工具
- 基于阿木实验室P200飞行器simulink模型开发的多旋翼无人机自抗扰控制器(ADRC)参数调整和仿真
热门文章
- 使用Maven前夕(Maven项目架构管理工具、配置环境变量、阿里云镜像、本地仓库)