mvn

  • 1. maven 是什么
  • 2. maven能解决什么问题
  • 3. maven 需要配置和下载
  • 4. 使用eclipse创建maven项目
  • 5. xml依赖配置 作用范围
  • 6. 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

问题:

  1. package和install的区别
 1. 都会经历过 清理、编译、测试、报告、打包2. package会打包生成target文件夹,生成jar或者war包3. install会将本地仓库放一份

maven 项目管理和构建工具相关推荐

  1. 动力节点笔记-Maven 自动化的构建工具

    目录 Maven 自动化的构建工具 第一章 Maven简介 1.1 软件开发中的阶段 1.2 Maven能做什么 1.3 没有使用maven怎么管理依赖 1.4 什么是maven 1.5 maven中 ...

  2. Python 项目管理与构建,这四款工具足够了!

    作者:隔叶黄莺 来源:https://yanbin.blog/python-dependency-management-build-tools Python 历时这么久以来至今还未有一个事实上标准的项 ...

  3. 【Maven从入门到精通】 01-自动化构建工具:Maven

    笔记来源:Maven零基础入门教程(一套轻松搞定maven工具) 文章目录 自动化构建工具:Maven 1.Maven 到底是啥? 2.什么是构建? 3.构建过程中的各个环节 4.自动化构建 5.安装 ...

  4. Maven学习总结(56)—— Maven、Gradle 、 Ant 哪一个构建工具最适合你?

    前言 根据相关报告,大多数 Java 开发人员使用 Maven 作为他们的主要构建工具,在 67% 的受访者中.排名第二和第三的分别是 20% 的 Gradle 和 11% 的 Ant.这三个构建工具 ...

  5. Maven项目管理工具

    Maven项目管理工具 1.Maven介绍 1.1 什么是Maven 1.1.1 什么是Maven 1.1.2 Maven能解决什么问题 1.1.3 Maven的优势举例 1.2 Maven的两个作用 ...

  6. 【Microsoft Azure 的1024种玩法】七十四.五分钟在Azure Virtual Machines中快速部署一套软件项目管理及自动构建工具

    [简介] Apache Maven由 Apache 软件基金会所提供的一个软件项目管理及自动构建工具,Maven 为开发者提供了一套完整的构建生命周期框架.开发团队几乎不用花多少时间就能够自动完成工程 ...

  7. Maven与Gradle项目构建工具

    目录 一.Maven介绍 一.maven介绍 二.分模块开发 继承!!!parent!!! 聚合!!! module!!! Dependencies和dependencyManagement Buil ...

  8. 即将取代Maven和Gradle的新一代更强更快的构建工具(至尊典藏版)

    目录 前言 1.介绍 2.安装 3.使用 3.1. 从GitHub下载压缩包 3.2. 解压并配置环境变量 3.3.测试 4.总结 前言 大家好,我是程序缘--幻羽,我又来了!! Maven和Grad ...

  9. SSM框架自学(四)——Maven项目管理工具快速入门

    前言:最初Java SSM搭建Web项目时,采用的是比较繁琐的手动导入jar包的形式,我们得去对应官网上到处找各种jar包,然后下载好导入自己项目的lib目录中.下面就是一个最简单的SSM项目所需的j ...

最新文章

  1. 如何设置listview每个item高度
  2. Redis集群:一致性哈希
  3. Python列表中字符串转数字的方法
  4. leetcode 994. Rotting Oranges | 994. 腐烂的橘子(BFS)
  5. science量子计算机,第一快讯|《Science》量子计算机被证明超越了经典计算机
  6. android zip压缩
  7. IBM 语音识别输入系统
  8. 68.TextView设置中划线、下划线
  9. golang gin解决跨域:编写一个全局中间件
  10. ORACLE decode
  11. 冰点还原精灵密钥可以用多少台电脑
  12. c语言全局变量(c语言全局变量怎么定义)
  13. SEO和SEM的区别是什么?
  14. 揭露培训机构以招聘名义变相招生的欺诈套路!莫被骗!附上企业黑名单!
  15. Ribbon停止维护
  16. 小项目一:使用fping统计网络中主机的网络连通情况
  17. labview与android,LabVIEW与Android手机的无线视频实时传输
  18. 大道至简——软件工程实践者的思想知识导图
  19. UCB——上界置信算法
  20. 1896-2021历届奥运会奖牌榜动态排序(Matplotlib图表动画)

热门文章

  1. 前端学习(1179):vue概述
  2. JAVA翻译官_Java开发笔记(三)Java帝国的特种官吏
  3. vue中使用cookies和crypto-js实现记住密码和加密
  4. CSS3之Transform
  5. TCP服务器epoll的多种实现
  6. python猜数字游戏实例_Python案例:猜数字小游戏,由浅入深!
  7. 智能机器人及其应用ppt课件_机器人视觉技术在建筑智能化生产中的应用
  8. html设计网页技巧,网页设计技巧:网页表格设计技巧总结
  9. UI自动化之读取浏览器配置
  10. 【市场调研与分析】Intel发力移动安全领域——By Me at 20140613