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;点击排名 对数据进行排序 四、参…

Java源代码分析与生成

源代码分析&#xff1a;可使用ANTLRANTLR是开源的语法分析器&#xff0c;可以用来构造自己的语言&#xff0c;或者对现有的语言进行语法分析。JavaParser 对Java代码进行分析CodeModel 用于生成Java代码(但对于已有代码的支持可能有问题) 转载于:https://www.cnblogs.com/laoni…

springboot 整合mybatis实现curd

springboot 整合mybatispom文件mvc 架构application.properties 扩展配置&#xff0c;druid配置类项目地址&#xff1a;https://github.com/sevenyoungairye/spring-boot-study/tree/main/springboot-mybatis-05pom文件 <!--整合mybatis--><dependency><groupId…

关于android 调用网页隐藏地址栏

首先创建项目&#xff0c;在main.xml里 添加好WebView控件R.id为webview1。 HelloWebView.java 代码 package liu.ming.com; import android.app.Activity;import android.os.Bundle;import android.view.KeyEvent;import android.webkit.WebView;import android.webkit.WebVie…

spring security 认证与权限控制

目录1. 使用授权和认证的必要性2. spring security 与 shiro 与 过滤器&#xff0c;拦截器3. 具体配置使用项目地址&#xff1a;https://github.com/sevenyoungairye/spring-boot-study/tree/main/springboot-security-061. 使用授权和认证的必要性 什么是安全框架&#xff0c…

CodeIgniter框架下载辅助函数的一个小bug

if (strpos($_SERVER[HTTP_USER_AGENT], "MSIE") ! FALSE){header(Content-Type: .$mime); // <---1)这里header(Content-Disposition: attachment; filename".$filename.");header(Expires: 0);header(Cache-Control: must-revalidate, post-check0, p…

win7 cmd命令行窗口 宽度无法变大 自由调整大小

偶然遇到了这个问题,百度查到了解决方案,执行一个bat批处理命令. mode con lines40 mode con cols160 color 250 cls cmd转载于:https://www.cnblogs.com/DreamDrive/p/4017970.html

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文…

异步任务,邮箱任务,定时任务

task~异步任务邮箱任务定时任务源码下载异步任务 开启多线程&#xff0c;我飞了。 package cn.bitqian.service;import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service;/*** 异步任务 目的 多线程&#xff0c;交给spring托…

iframe在ipad safari的显示

今 天要在web中嵌套一个网址或本地HTML&#xff0c;用到了iframe&#xff0c;在电脑上设置scrolling‘auto’&#xff0c;宽度高度&#xff0c;会有滚动条出现。而在 ipad上会全部显示整个网页的宽度高度。scrolling属性无效。原来在html5中的iframe已经只有剩下src的属性。 但…

IOS 开发中 Whose view is not in the window hierarchy 错误的解决办法

在 IOS 开发当中经常碰到 whose view is not in the window hierarchy 的错误&#xff0c;该错误简单的说&#xff0c;是由于 "ViewController" 还没有被加载&#xff0c;就调用该 ViewController 或者 ViewController 内的方法时&#xff0c;就会报这个错误。在不同…

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 然后放…

二分图多重匹配

在二分图的最大匹配中&#xff0c;每个点&#xff08;不管是X集合还是Y集合&#xff09;最多只能与一条匹配边相关联&#xff0c; 然而&#xff0c;经常有这种问题&#xff0c;即二分图的一个点可以和多条匹配边相关联&#xff0c;但有上限&#xff0c;即cap[i]表示点i最多能和…

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);#加全文索引 --------------------…