maven 项目管理和构建工具

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会将本地仓库放一份 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420564.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据----基于sogou.500w.utf8数据的MapReduce编程

目录 一、前言二、准备数据三、编程实现3.1、统计出搜索过包含有“仙剑奇侠传”内容的UID及搜索关键字记录3.2、统计rank<3并且order>2的所有UID及数量3.3、上午7-9点之间&#xff0c;搜索过“赶集网”的用户UID3.4、通过Rank&#xff1a;点击排名 对数据进行排序 四、参…

springboot 与shiro整合

shiro~ shiro快速入门springboot 整合shiro核心目标清爽pom用户认证授权认证&#xff0c;与数据库交互shiro configuration核心controller 获取shiro 中的token页面控制功能的隐藏和显示https://github.com/sevenyoungairye/spring-boot-study/tree/main/springboot-shiro-07sh…

jvm内存设置

摘抄自&#xff1a;http://www.cnblogs.com/fyj218/archive/2011/07/19/2110570.html 在eclipse根目录下打开eclipse.ini&#xff0c;默认内容为&#xff08;这里设置的是运行当前开发工具的JVM内存分配&#xff09;&#xff1a;-vmargs-Xms40m-Xmx256m-vmargs表示以下为虚拟机…

swagger接口文档使用

swagger接口文档一&#xff0c;swagger简介前后端分离swagger 诞生二&#xff0c;springboot集成swagger依赖编写helloworld接口配置swagger > config 配置类测试运行三&#xff0c;配置swaggerswagger 配置扫描接口如何做到只在生产环境中启动swagger&#xff1f;配置api文…

maven传递依赖

目录1. 依赖传递2. 什么是依赖冲突3. 怎么解决4. 项目聚合maven是一个项目管理的工具&#xff0c;从项目的构建到项目开发&#xff0c;再到项目的测试&#xff0c;项目上线&#xff0c;都可一键管理。1. 那么&#xff0c;还有maven是如何管理项目中所用到的jar版本冲突&#xf…

使用apache FileUtils下载文件

目录工具代码实现测试工具 <dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.5</version></dependency>或者 https://mvnrepository.com/artifact/commons-io/commons-io/2.7 然后放…

springmvc,spring,hibernate5.0整合

目录1. pom依赖2. web.xml3. spring核心配置文件3.1 jdbc配置信息3.2 sping 配置文件4. 实体映射5. 项目结构5.1 curd5.2 页面6. 测试1. spring版本 5.1.5 RELEASE 2. hibernate版本 5.3.9.Final 3. 数据源使用c3p0项目使用eclipse2017 maven构建, 完成学生的新增&#xff0c;…

MYSQL 查看表上索引的 1 方法

前期准备&#xff1a; create table T9(A int ,B text,C text,fulltext index fix_test_for_T8_B(B));#在定义表的时候加索引 create unique index ix_test_for_T8_A on T9(A);#加朴素索引 create fulltext index fix_test_for_T8_C on T9(C);#加全文索引 --------------------…

springmvc 结合ajax批量新增

目录1. 需要注意的问题2. 页面代码3. controller定义参数接收1. 需要注意的问题 mvc框架的处理日期问题ResponseBody响应对象是自定义对象&#xff0c;响应不是jsonResopnseBody响应自定义对象时&#xff0c;日期为是long类型的数结束数据方法的参数&#xff0c;该如何定义&am…

手写简单的启动器

starter1. target2. 手写启动器~2.1 自动装配&#xff0c;自定义属性2.2 启动器&#xff0c;引用自动装配模块3. 在自己的项目引用上面的starter1. target 1. 启动器只用来做依赖导入(导入配置模块)2. 专门来写一个自动配置模块3. 启动器依赖自动配置&#xff1b;别人只需要引入…

Android 颜色渲染(九) PorterDuff及Xfermode详解

Android 颜色渲染(九) PorterDuff及Xfermode详解之前已经讲过了除ComposeShader之外Shader的全部子类, 在讲ComposeShader(组合渲染)之前, 由于构造ComposeShader需要 PorterDuffXfermode或者PorterDuff.Mode作为参数,所以在此先详细地了解下这两个类的作用,这对之后的绘图会…

每次新建Android项目都报样式找不到的错误?

问题描述如图再网上找了下说改为<style name"AppBaseTheme" parent"android:Theme.Light">这样就行了的确改为这样就ok了但是如果每次都要这么改&#xff0c;不是很烦&#xff1f;有没有彻底解决这个问题的方法&#xff1f;谢谢 解决方案1新建的时候…

Qt多线程学习:创建多线程

【为什么要用多线程&#xff1f;】 传统的图形用户界面应用程序都仅仅有一个运行线程&#xff0c;而且一次仅仅运行一个操作。假设用户从用户界面中调用一个比較耗时的操作&#xff0c;当该操作正在运行时&#xff0c;用户界面一般会冻结而不再响应。这个问题能够用事件处理和多…

图解springmvc 执行流程

核心对象 DispatcherServlet 核心控制器负责请求&#xff0c;响应&#xff0c;数据的分发。HandlerMapping 处理器映射器&#xff0c;负责到controller中&#xff0c;找到对应的方法&#xff0c;返回给核心控制器。HandleAdapter 处理适配器&#xff0c;将handle找到的方法执行…

VMware下Windows Server 2012添加新磁盘

系统管理员在VM下新装了一台Windows Server 2012服务器&#xff0c;我在上面安装了SQL Server 2014 Standard版数据库&#xff0c;安装之初&#xff0c;只分配了一个C盘&#xff0c;我想在这台服务器上添加了三个磁盘&#xff08;虚拟磁盘&#xff09;&#xff0c;步骤如下截图…

mybatis Caused by: java.io.IOException: Could not find resource xxx.xml

翻译&#xff1a;找不到mybatis的映射配置文件。。。 配置文件名别写错了… <!-- 扫描mapper --> <mappers><!-- src/main/resources下 使用\ --><!-- <mapper resource"cn\bitqian\mapper\ordersMapper.xml"/> --><!-- src/mai…