学习Maven有感
1、maven的由来
maven是一款服务于java平台的自动化构建工具
构建定义:把动态的Web工程经过编译得到的编译结果部署到服务器上的整个过程。
编译:java源文件[.java]->编译->Classes字节码文件。
部署:最终在sevlet容器中部署的不是动态web工程,而是编译后的文件。
2、使用maven的好处
(1)项目过于庞大,使用package来划分会显得十分臃肿,可以将一个项目拆分成多个工程,最后用maven将这些模块进行整合,代码结构清晰明了。
(2)可以为每个模块单独进行jar包的导入,可以解决项目中jar包冲突的问题。
(3)添加jar包不用去下载,只需要将所需要的jar包配置到POM.XML中,maven会自动将所依赖的jar包导入到本地库中。
3、常用的maven命令
(1)mvn clean:清理
(2)mvn compile:编译主程序
(3)mvn test-compile:编译测试程序
(4) mvn test:执行测试
(5)mvn package:打包
(6) mvn install:安装
4、常用的maven的标签
(1)LocalRepository
作用:该值表示构建系统本地仓库的路径。
其默认值:~/.m2/repository。
<localRepository>${user.home}/.m2/repository</localRepository>
(2)InteractiveMode
作用:表示maven是否需要和用户交互以获得输入。
如果maven需要和用户交互以获得输入,则设置成true,反之则应为false。默认 为true。
<interactiveMode>true</interactiveMode>
(3)PluginGroups
作用:当插件的组织id(groupId)没有显式提供时,供搜寻插件组织Id(groupId) 的列表。
<pluginGroups>
<!--plugin的组织Id(groupId) -->
<pluginGroup>org.codehaus.mojo</pluginGroup>
</pluginGroups>
(4)Mirrors
作用:为仓库列表配置的下载镜像列表
(5)Proxies
作用:用来配置不同的代理。
(6)Profiles
作用:根据环境参数来调整构建配置的列表。
(7)Activation
作用:自动触发profile的条件逻辑。
如pom.xml中的profile一样,profile的作用在于它能够在某些特定的环境中自动 使用某些特定的值;这些环境通过activation元素指定。
(8)properties
作用:对应profile的扩展属性列表。
maven属性和ant中的属性一样,可以用来存放一些值。这些值可以在pom.xml 中的任何地方使用标记${X}来使用,这里X是指属性的名称。属性有五种不同的形 式,并且都能在settings.xml文件中访问。
(9)Repositories
作用:远程仓库列表,它是maven用来填充构建系统本地仓库所使用的一组远程仓库。
(10)pluginRepositories
作用:发现插件的远程仓库列表。
和repository类似,只是repository是管理jar包依赖的仓库,pluginRepositories则 是管理插件的仓库。
maven插件是一种特殊类型的构件。由于这个原因,插件仓库独立于其它仓库。 pluginRepositories元素的结构和repositories元素的结构类似。每个pluginRepository 元素指定一个Maven可以用来寻找新插件的远程地址。
(11)modelVersion
作用:规定Maven模块版本,目前我们一般都取值4.0.0
(12)groupId
整个系统的名称。
(13)artifactId
子模块名称。
(14)Packaging
打包类型,可取值:jar,war等等,这个配置用于package的phase,具体可以参见 package运行的时候启动的plugin,后面有机会我们会讲述如何配置打包的插件。
(15)Dependencies
依赖关系。
(16)scope
作用:规定依赖的范围
1)compile,默认值,适用于所有阶段(开发、测试、部署、运行),本jar会一直存在所有阶段。
2)provided,只在开发、测试阶段使用,目的是不让Servlet容器和你本地仓库的jar包冲突 。如servlet.jar。
3)runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
4)test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
5)system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。
5、maven的依赖原则
(1)路径最短最优先,局部引用高于全局引用。
(2)路径相同,最先声明最先引用。
(3)统一管理依赖的版本。
学习Maven有感的更多相关文章
- 几个学习Maven不错的网址
几个学习Maven不错的网址:---------------------------------------------------1.Maven官方网站 http://maven.apache.or ...
- 我的学习归纳方法(以学习Maven为例)
以我的个人角度来看待学习这件长久的事,希望对你有帮助,也希望你能提一下你的意见 本文初衷 把自己模板化 以此篇为引,与同行沟通心得,所以在此严重要求如果你有对应的心得还请能回复下,真心感谢!(鞠躬) ...
- 学习Maven之Maven Surefire Plugin(JUnit篇)
1.maven-surefire-plugin是个什么鬼? 如果你执行过mvn test或者执行其他maven命令时跑了测试用例,你就已经用过maven-surefire-plugin了.maven- ...
- 学习maven的使用,看到一篇很实用的入门教程(菜鸟级入门)
一.前言 早就知道maven 在java 项目的管理方面名声显赫,于是就想着学习掌握之,于是查阅了大量文档.发现这些文档的作者都是java 的大腕,大多都是站在掌握了一定maven 基 ...
- 学习maven,看思维导图就够了
一直在用 Mindjet MindManager和xmind 做思维导图.以前在用思维导图写读书笔记时,总是想要事无巨细地写清楚每个知识点,现在想来是事倍功半.思维导图应该是一个帮助我们梳理知识点.理 ...
- maven 学习---Maven Web应用
本教程将教你如何管理使用Maven版本控制系统管理一个基于Web项目.在这里,将学习如何创建/构建/部署和运行Web应用程序: 创建Web应用程序 要创建一个简单的java web应用程序,我们将使用 ...
- maven 学习---Maven安装配置
想要安装 Apache Maven 在Windows 系统上, 只需要下载 Maven 的 zip 文件,并将其解压到你想安装的目录,并配置 Windows 环境变量. 所需工具 : JDK 1.8 ...
- 学习Maven之Maven Clean Plugin
1.maven-clean-plugin是个什么鬼? maven-clean-plugin这个插件用maven的人都不陌生.我们在执行命令mvn clean时调用的就是这个插件. 这个插件的主要作用就 ...
- 学习nodejs有感
接触nodejs一段时间了,不断的去接触接触,nodejs是一个能让前端程序员做后台开发的一项技术. 随着学习,让我更好的理解了前后端,以及浏览器是如何运作的
随机推荐
- 替换unimrcp的VAD模块
摘要: unimrcp vad 模块voice activity dector一直认为比较粗暴,而且unimrcp的社区也很久没有更新了.使用原始unimrcp如果只是用来做Demo演示,通过手动调整 ...
- python爬虫--看看虎牙女主播中谁颜值最高
目录 爬虫 百度人脸识别接口 效果演示 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知 ...
- 在Spring中拦截器的使用
Filter Filter是Servlet容器实现的,并不是由Spring 实现的 下面是一个例子 import java.io.IOException; import javax.servlet.F ...
- 挂载磁盘不成功显示mount: /mnt: wrong fs type, bad option, bad superblock..............
[23:25:32 root@8 ~]#mount /dev/sdb2 /mntmount: /mnt: wrong fs type, bad option, bad superblock on /d ...
- ACwing 你能回答这些问题吗(线段树求最大连续字段和)
给定长度为N的数列A,以及M条指令,每条指令可能是以下两种之一: 1.“1 x y”,查询区间 [x,y] 中的最大连续子段和,即 maxx≤l≤r≤ymaxx≤l≤r≤y{∑ri=lA[i]∑i=l ...
- 软件架构与设计 百度网盘的pdf电子书籍
如有版权问题请及时联系小编 软件架构与设计 百度网盘的pdf电子书籍 1:<软件体系结构(PDF)>https://pan.baidu.com/s/1lChfIJt5lc63KO09n5L ...
- Pinpoint 一款强大的APM工具
背景 程序的监控一直是程序员最头痛的事情之一,现网程序有问题怎么办?看进程看端口 top/free/df 三件套?网络抓包?看日志?所以为了满足这些初级需求很多公司都做了主机监控,进程端口监听等功能, ...
- python 模块安装导入
一.定义 python模块就是一个.py文件,一个模块中可以有多个函数,在使用模块时,只需要import下,就可以使用模块中的函数功能.import模块的过程相当于把这个py文件中的所有内容都执行一遍 ...
- linux系统jdk安装
1.软件包下载:官网 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载linu ...
- 记tp5.1使用composer PhpOffice的xlsx表格文件导入数据库
在项目环境下composer require phpoffice/phpspreadsheet在项目中引用use PhpOffice\PhpSpreadsheet\IOFactory; 下面是 上传x ...