一:maven的好处

1.依赖管理:对jar包的统一管理 可以节省空间

2.项目一键构建:

	编码  编译  测试(junit)  运行  打包  部署
一个 tomcat:run就能把项目运行起来
Maven能干的事:
编译 测试(junit) 运行 打包 部署

3.可以跨平台

4.应用于大型项目 可以提高开发效率

	互联网项目:按业务分
传统项目:按层次分 pojo dao service web

二:maven仓库

三种仓库

1、本地仓库 自己维护
本地仓库的配置只需要修改settings.xml文件就可以
2、远程仓库(私服) 公司维护
3、中央仓库 maven团队维护

三:maven入门程序

1.Maven的目录结构

	pom.xml  -->  maven项目的核心文件
src/main --> 主目录
src/main/java --> java代码
src/main/resources --> 配置文件/properties/xml
src/test --> 测试目录
src/test/java --> 纯java代码 junit测试
src/test/resources --> junit测试所用到的配置文件,如果没有就从main里找

2.maven常用命令

	mvn clean  -->  清理编译的文件
mvn compile --> 编译了主目录的文件
mvn test --> 编译并运行了test目录的代码
Package --> 打包
mvn install --> 把项目发布到本地仓库
tomcat:run 一键启动

3.maven的生命周期

	Compile   test  package  install  deploy(发布到私服)
三种生命周期:
Clean生命周期
Clean
Default生命周期
Compile test package install deploy
Site生命周期
Site
不同的生命周期的命令可以同时执行:
Mvn clean package

四:项目构建

1.maven在eclipse的配置

	选择maven软件的版本
修改默认的本地仓库地址

2.项目构建

a.新建maven项目

b.跳过骨架,如果不跳过骨架选择创建出的项目目录是不全的

c.填写坐标信息

		groupId 公司或组织名称
artifactId 项目或模块名称
version 版本
packaging 打包方式

d.添加web.xml文件

		①.手动在webapp文件夹下创建一个WEB-INF文件夹,在里面放一个web.xml文件
②.查看项目信息
project facets --》 dynamic web module
去掉勾选 --》apply 再该版本 --》设置xml路径(src/main/webapp) --》apply

e.修改编译版本

在pom.xml中添加如下代码:

		<build>
<!-- 配置了很多插件 -->
<finalName>ssm</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>

f.添加jar包(在pom.xml中)(依赖传递)

在本地重建索引,以索引的方式搜索:

			打开maven仓库的视图
重建索引
添加坐标 选择Dependencies标签 点击add
手动输入要添加的坐标,选择版本和范围

从网络上搜索:mvnrepository.com

g.启动项目(maven build...)

		tomcat:run

五:依赖范围

1.Compile struts2-core

	编译(compile)时需要 测试时需要,运行时需要,打包时需要

2.Provided jsp-api.jar servlet-api.jar -- *****

	编译(compile)时需要,测试(test)时也需要 ,运行时不需要,打包时不需要

3.Runtime 数据库驱动包

	编译时不需要,测试时需要,运行时需要,打包时需要

4.Test junit.jar

	编译时不需要,测试时需要,运行时不需要,打包也不需要

六:依赖版本冲突的解决

1、第一声明优先原则 优先采用前面的jar包,不采用后面的jar包

2、路径近者优先原则 自己添加jar包,优先采用直接定义的jar包,不采用依赖传递的jar包

3、排除原则

	<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>2.3.24</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</exclusion>
</exclusions>
</dependency>

4、版本锁定原则

	<properties>
<spring.version>4.2.4.RELEASE</spring.version>
<hibernate.version>5.0.7.Final</hibernate.version>
<struts.version>2.3.24</struts.version>
</properties>

发布项目:

运行myeclipse server application,部署项目到tomcat并运行

运行manven install,打包项目到本地仓库

maven启动自带的tomcat:(在pom.xml中添加插件)

Maven  add  plugin
tomcat6:
tomcat:run
tomcat:stop
tomcat7:
tomcat7:run
tomcat7:shutdown

一:Maven知识整理的更多相关文章

  1. Maven知识整理

    一.概念: Maven是一个项目管理工具,它包含了一个项目对象模型(Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统( ...

  2. Salesforce知识整理(一)之Lightning Web Component Tools

    目录 LWC知识整理(一) 工具 Salesforce CLI Visual Studio Code(VS Code) Developer Hub(Dev Hub) 开启Dev Hub 相关资料 茶余 ...

  3. js事件(Event)知识整理

    事件(Event)知识整理,本文由网上资料整理而来,需要的朋友可以参考下   鼠标事件 鼠标移动到目标元素上的那一刻,首先触发mouseover 之后如果光标继续在元素上移动,则不断触发mousemo ...

  4. Kali Linux渗透基础知识整理(四):维持访问

    Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...

  5. Kali Linux渗透基础知识整理(二)漏洞扫描

    Kali Linux渗透基础知识整理系列文章回顾 漏洞扫描 网络流量 Nmap Hping3 Nessus whatweb DirBuster joomscan WPScan 网络流量 网络流量就是网 ...

  6. wifi基础知识整理

    转自 :http://blog.chinaunix.net/uid-9525959-id-3326047.html WIFI基本知识整理 这里对wifi的802.11协议中比较常见的知识做一个基本的总 ...

  7. 数据库知识整理<一>

    关系型数据库知识整理: 一,关系型数据库管理系统简介: 1.1使用数据库的原因: 降低存储数据的冗余度 提高数据的一致性 可以建立数据库所遵循的标准 储存数据可以共享 便于维护数据的完整性 能够实现数 ...

  8. 【转载】UML类图知识整理

    原文:UML类图知识整理 UML类图 UML,进阶必备专业技能,看不懂UML就会看不懂那些优秀的资料. 这里简单整理 类之间的关系 泛化关系(generalization) 泛化(generalize ...

  9. Linux进程管理知识整理

    Linux进程管理知识整理 1.进程有哪些状态?什么是进程的可中断等待状态?进程退出后为什么要等待调度器删除其task_struct结构?进程的退出状态有哪些? TASK_RUNNING(可运行状态) ...

随机推荐

  1. Mysql 索引原理《一》索引原理与慢查询2

    一 索引未命中 并不是说我们创建了索引就一定会加快查询速度,若想利用索引达到预想的提高查询速度的效果,我们在添加索引时,必须遵循以下问题 1 范围问题,或者说条件不明确,条件中出现这些符号或关键字:& ...

  2. OCP2018最新题库,052新题库及答案整理-25题

    25.Which is true about logical and physical database structures? (Choose the best answer) A. An undo ...

  3. link和@import的区别是什么 ?

    1.link是XHTML标签,除了加载CSS外,还可以定义RSS等其他事务:@import属于CSS范畴,只能加载CSS. 2.link引入CSS是,在页面载入时间同时加载:@import页面网页完全 ...

  4. 本地Windows环境下安装MySql

    Windows 上安装 MySQL Windows 上安装 MySQL 相对来说会较为简单,你需要在 MySQL 下载中下载 Windows 版本的 MySQL 安装包. Download Link: ...

  5. Windows下磁盘无损重新分配

    打开百度(www.baidu.com),找到我们的分区助手.exe 单击“普通下载”,会下载一个安装包. 这时候,我们进行安装.安装完成如下. 对着那个盘容量较大的盘右键,分配空闲空间. 服务器多次重 ...

  6. jqury属性操作,特殊效果

    一. 常用属性操作 1.html() 取出或设置html内容 // 取出html内容 var $htm = $('#div1').html(); // 设置html内容 $('#div1').html ...

  7. P5108 仰望半月的夜空 SAM+线段树覆盖

    $ \color{#0066ff}{ 题目描述 }$ 半月的夜空中,寄托了多少人与人之间的思念啊 曦月知道,这些思念会汇集成一个字符串\(S(n = |S|)\) 由于思念汇集的过于复杂,因此曦月希望 ...

  8. NOI.AC省选模拟赛第一场 T1 (树上高斯消元)

    link 很容易对于每个点列出式子 \(f_{x,y}=(f_{x,y-1}+f_{x,y}+f_{x,y+1}+f_{x+1,y})/4\)(边角转移类似,略) 这个转移是相互依赖的就gg了 不过你 ...

  9. 适配器模式-如何把usb插到插座上

    前言 下面所写的内容不是实际的业务场景, 也可能不符合正常的生活习惯, 或者不满足一些人的口味 所写的内容包括之前的帖子,只是为了方便大家更好的记住这个设计模式,实际生活中要灵活应用 设计模式重思想, ...

  10. TCP/CP调试

    首先要先给自己的电脑分配一个固定的内网IP,不可以自动获取,然后将这个固定的IP设置为DMZ主机就可以将你的电脑暴露给外网,就能实现你想要的功能!! {1}设置成固定IP的方法是在路由的DHCP服务器 ...