maven 项目管理和构建工具

1. maven 是什么

Maven 在美国是一个口语化的词语,代表专家、内行的意思,
Maven是一个项目管理工具,
它包含了一个项目对象模型(POM:Project Model),	一组标准集合,
一个项目生命周期(jar包引入、编码、编译、单元测试、打包war/jar),
解决大部分的jar包冲突(类的冲突、多个jar包中存在相同的类(相同的类全路径)),
报错信息(类找不到),依赖管理系统和一键构建用来运行定义在生命周期中插件目标逻辑。

作用:jar包引入、编码、编译、单元测试、打包war/jar

2. maven能解决什么问题

项目开发不仅仅是写写代码而已,
期间会伴随着各种必不可少的事情要做,比如:

  1. 我们需要引用各种 jar 包,尤其是比较大的工程,
    引用的 jar 包往往有几十个乃至上百个,
    每用到一种 jar 包,都需要手动引入工程目录,
    而且经常遇到各种让人抓狂的 jar 包冲突,版本冲突。
  2. 我们辛辛苦苦写好了 Java 文件,
    可是只懂 0 和 1 的白痴电脑却完全读不懂,
    需要将它编译成二 进制字节码。
    好歹现在这项工作可以由各种集成开发工具帮我们完成,
    Eclipse、IDEA 等都可以将代 码即时编译。
    当然,如果你嫌生命漫长,何不铺张,
    也可以用记事本来敲代码,然后用 javac 命令一 个个地去编译。
  3. 世界上没有不存在 bug 的代码,
    计算机喜欢 bug 就和人们总是喜欢美女帅哥一样。
    为了追求美为了减少 bug,因此写完了代码,
    我们还要写一些单元测试,
    然后一个个的运行来检验代码质量。
  4. 再优雅的代码也是要出来卖的。
    我们后面还需要把代码与各种配置文件、资源整合到一起,
    定型打包,如果是 web 项目,还需要将之发布到服务器,供人蹂躏使用。
    试想,如果现在有一种工具,可以把你从上面的繁琐工作中解放出来,
    能帮你构建工程,管理 jar 包,编译代码,
    还能帮你自动运行单元测试,打包,生成报表,
    甚至能帮你部署项目,生成Web站点,你会心动吗?
    Maven 就可以解决上面所提到的这些问题

3. maven 需要配置和下载

http://maven.apache.org/download.cgi

  • 配置maven的环境变量,jdk的环境变量必须配置好java8 或者 java11以上
  • 一个是中央仓库的位置改为阿里云的
  • 第二个是指定本地仓库

https://www.cnblogs.com/huangting/p/11079087.html
https://blog.csdn.net/huo920/article/details/82082403

4. 使用eclipse创建maven项目

截图为证


选好骨架webapp



导入servlet包

项目结构的完善

上面的结构还不是完善的,需要有测试包和写java代码的包

完整的项目结构
在这里插入图片描述

5. xml依赖配置 作用范围

比如下面的scope,是provided

<dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>servlet-api</artifactId>
	<version>2.5</version>
	<scope>provided</scope>
</dependency>
  • compile

默认的scope,表示 dependency 都可以在生命周期中使用
而且,这些dependencies 会传递到依赖的项目中。

  • provided

跟compile相似,但是表明了dependency 由JDK或者容器提供,
例如Servlet API和一些Java EE APIs。
这个scope 只能作用在编译和测试时,同时没有传递性
使用这个时,不会将包打入本项目中,只是依赖过来
使用默认或其他时,会将依赖的项目打成jar包,放入本项目的Lib里

  • runtime

表示dependency不作用在编译时,但会作用在运行和测试时

  • test

表示dependency作用在测试时,不作用在运行时

6. maven的常用命令

  • clean:清理

将项目根目录下target目录清理掉

  • compile:编译

compile 是 maven 工程的编译命令,
作用是将 src/main/java 下的文件编译为 class 文件
输出到 target 目录下

  • test:单元测试

单元测试类名有要求:XxxTest.java(命令只认Test结尾的)
将项目根目录下,src/test/java目录下的单元测试类都会执行

  • package:打包

web project —war包
java project —jar包
将项目打包,打包到项目更目录下target目录

  • install:安装

解决本地多个项目共用一个jar包,打包到本地仓库。
install 是 maven 工程的安装命令,
执行 install 将 maven 打成 jar 包或 war 包发布到本地仓库。

找到项目的根路径,命令行。

mvn install 

猜你喜欢

转载自blog.csdn.net/qq_44783283/article/details/109290347