一、引言

Apache Maven是一个项目管理和理解工具,它基于项目对象模型(POM)的概念,它可以管理项目的构建、报告和文档。

上周总结的东西由于最近生活节奏比较乱没有整理,赶紧总结下别忘了,结构图如下:

以前总听说maven比较方便jar包啥的都方便管理,跟微软的nuget差不多,使用比较方便,一直没用,终于有机会系统看了看,用起来==

二、Maven基本原理与思想

maven最主要的功能是依赖管理与项目构建,依赖管理与项目构建,依赖管理与项目构建,重要的事情说三遍==

1、依赖管理

依赖管理主要是通过pom文件配置对jar包进行管理,不需要自己一个个往工程里面拷贝,首先从本地仓库中查找,查找不到会从中央仓库里面下载到本地仓库,很实用。

2、项目构建

主要是通过pom中插件配置每个生命周期中的进行相应的处理:如选择jre编译版本。

三、使用

1、maven安装与仓库配置

首先肯定要安装jdk,然后按照这篇文章的步骤安装maven即可点击打开链接,讲的比较详细了==

安装成功后,要配置下本地仓库的位置,一般默认位置为C:\Users\xcy\.m2\repository,最好自己配置下,当本地找不到jar包的时候就会从中央仓库下载,所以这个文件夹会越来越大。中心仓库默认为http://repo1.maven.org/maven2/。

配置文件位置在:

修改本地仓库的位置参数为:

2、maven工程目录

创建后的工程目录

3、maven生命周期与命令

maven主要有三个生命周期,相互直接不会影响调用,在每个生命周期中运行某一个操作会把该生命周期之前的操作执行一遍。

clean:用于删除构建目录;

default(build):主要生命周期,用于构建应用

site:一般用来创建新的报告文档、部署站点等

具体详细的信息可以查看点击打开链接

4、eclipse 工程配置与创建

  • 新建web工程,点击file-new-maven project
  • 不勾选对号,next
  • 选择web-app的archetype
  • 填写groupid公司名或者域名倒置填写,填写artifact id项目名,版本号
  • 添加tomcat library(默认没添加,不然会报错)
  • pom中配置jre版本(默认可能不是机子上装的版本),添加plugin,然后右击工程-maven-update project
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.xcy</groupId><artifactId>firsttest</artifactId><packaging>war</packaging><version>0.0.1-SNAPSHOT</version><name>firsttest Maven Webapp</name><url>http://maven.apache.org</url><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.0</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build>
</project>

5、pom配置(主要插件与依赖)

主要包括插件与依赖管理,举个例子说明下

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.xcy</groupId><artifactId>mvnwar</artifactId><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.0</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version></dependency><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.3</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.0.2.RELEASE</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>3.0-alpha-1</version></dependency></dependencies><packaging>war</packaging><version>1.1</version>
</project>

其中build中的plugin指的就是插件,该文件中设置了编译时的jdk版本;其中dependency里面写的就是项目依赖的jar包。

在dependency里面有时会有一些scope标签,因为jar包用的范围不同,比如普通jar包就是compile每个地方都能用到,tomcat中的jar包为provided就是临时提供下最后不会i打包到程序中,jdbc为runtime编译不需要在运行的时候需要,junit为test仅在测试的时候用得到==

四、总结

  • maven原理与思想;
  • maven安装配置;
  • maven工程目录;
  • maven生命周期;
  • maven在eclipse中的使用;

Maven——原理与使用(一)相关推荐

  1. copy-maven-plugin - where is it configured - Maven原理探究

    Created by Wang, Jerry, last modified on Feb 06, 2015

  2. MAVEN 傻瓜式快速教程

    MAVEN 快速教程 一.MAVEN概念和安装 ​ Maven 是专门用于构建和管理Java相关项目的工具,Maven是意第绪语,依地语(犹太人使用的国际语),表示专家的意思. 所以用Maven管理J ...

  3. 针对新手的Java EE7和Maven项目-第4部分-定义Ear模块

    从前面的部分恢复 第1部分 第2部分 第3部分 我们正在恢复第四部分,目前我们的简单项目有 Web Maven模块(战争) 一个ejb模块(ejb),其中包含我们的无状态会话bean(EJB 3.1) ...

  4. Maven找不到依赖终极解决方案

    离线网络环境中拷贝maven仓库到离线机器,使用maven加载项目,maven编译jar包找不到或者提示jar包信息不可用,现提供以下本人解决的方式,亲测可用 基础解决方案 常规 idea的 mave ...

  5. JavaWeb知识总结

    一.知识介绍 最近看了逻辑思维最后一期,现在我们都处在碎片化的学习中,这不可避免,但是我们还是要把这些碎片梳理下,毕竟脑子记最后剩下的东西才是自己的== 1.编程语言通用学习结构 其实各类语言都差的不 ...

  6. Java使用阿里邮箱生成excle邮件附件发送

    需求背景 日常工作中,对于一个码农来说,熟练使用框架之外,还需要灵活使用各类工具类,类似于导入导出,上传下载,邮件短信,语音视频等常用功能也是非常常见的需求,网上搜索的相关资料也是非常的多,今天就描述 ...

  7. 进阶大数据架构师学习路线

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/25b820fe1d054f53bab70310694faffe.jpeg#pic_center 文末有惊喜 大数据架 ...

  8. 安卓Android开发连载系列高级课

    链接:https://pan.baidu.com/s/1y0ukKw7XlTCSEx_CVAa6Cw 提取码:vsms 建议使用天翼云下载速度会更快一些,因为不限速 https://cloud.189 ...

  9. maven scala plugin 实现jvmArgs,执行过程原理解析笔记

    scala-maven-plugin 构建scala,springboot工程 我们在使用maven构建scala工程的时候, 要使用scala-maven-plugin插件,常规配置如下 : < ...

最新文章

  1. 趋势型指标——MACD
  2. PostgreSQL技术周刊第8期:用PostgreSQL 做实时高效搜索引擎
  3. pg-xl 基于 pgxc_ctl 安装与使用
  4. Pycharm自定义包的导入
  5. npm WARN enoent ENOENT: no such file or directory
  6. 016.2 String
  7. bounds的深入研究
  8. 【小游戏】AB猜数字
  9. # 安卓手机启动黑阈服务
  10. struts1,struts2,springMVC终极对比
  11. Java考试奥迪车代码_奥迪工程师车型代码
  12. Eclipse创建maven工程后没有build path解决方案
  13. vue代码查重(任意格式文件)
  14. SIFT算法关键点定位中对尺度空间DoG函数进行曲线拟合求极值点的数学过程
  15. 将 PDF 文件拆分为多个同样页数 pdf 文件的 Windows Powershell 脚本
  16. 国家标准GB7713-87
  17. 【博学谷学习记录】超强总结,用心分享 | shell基础
  18. 临床预测模型之综合判别改善指数IDI计算
  19. UndoManager教程
  20. 递归、分治算法刷题笔记

热门文章

  1. 计算机在生活中应用视频,计算机在腐蚀防护中的应用教学视频
  2. 麦克纳姆轮辊子滚动速度分析
  3. gulp html页面路径,通过gulp-connect部署静态页面,html页面中include路径无法get!
  4. 分时问候并显示不用图片案例
  5. 操作元素之修改元素属性
  6. opencv之实现回形遍历像素算法
  7. mybatis查询mysql数据库很慢_mybatis查询大量数据库
  8. Halcon——使用标定板标定像素当量
  9. 了解 node.js
  10. SQL语句的一些重要操作