一: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. [AGC003F] Fraction of Fractal 矩阵快速幂

    Description ​ SnukeSnuke从他的母亲那里得到了生日礼物--一个网格.网格有HH行WW列.每个单元格都是黑色或白色.所有黑色单元格都是四联通的,也就是说,只做水平或垂直移动且只经过 ...

  2. [Objective-C语言教程]决策结构(10)

    决策结构要求程序员指定一个或多个要由程序评估或测试的条件,以及在条件被确定为真时要执行的一个或多个语句,以及可选的,如果条件要执行的其他语句 被认定是假的. 以下是大多数编程语言中的典型决策结构的一般 ...

  3. 树莓派 Raspbian

    备注,从右往左分别是:无线鼠标一个, HDMI转VGA接口一个,网线一根,小米充电宝电源线一个.树莓派Pi 3 一台,包括读卡器一个+32G class10 SD卡一块.最后俩个U盘作为备用里面有Ar ...

  4. python3入门之赋值语句介绍

    获得更多资料欢迎进入我的网站或者 csdn或者博客园 本节主要介绍赋值语句,以及几种特殊的赋值.下面附有之前的文章: python3入门之print,import,input介绍 python入门之字 ...

  5. PHP初步:在Mac OS X Yosemite下搭建Apache+PHP+Mysql

    Mac OS X是基于unix的操作系统,很多软件都集成在系统中.所以,对于配置PHP的开发环境相对于windows和Linux更简单. 1. 启动Apache服务器 打开终端(terminal),查 ...

  6. css中的block与none

    *{ display:none; } div{ display:block; } div 会正常显示粗来吗?不会 因为*代表所有元素,包括div的父级元素html,body 父级元素都不显示了,子元素 ...

  7. HTML5本地存储——IndexedDB二:索引

    HTML5本地存储——IndexedDB(二:索引)   在HTML5本地存储——IndexedDB(一:基本使用)中介绍了关于IndexedDB的基本使用方法,很不过瘾,这篇我们来看看indexed ...

  8. 题目1010:A + B(字符串拆分)

    问题来源 http://ac.jobdu.com/problem.php?pid=1010 问题描述 给我们一行标准的字符串,整行读入之后,把它拆开转换成数字进行计算. 问题分析 首先考虑一个问题:如 ...

  9. 关于java编译

    1.不包括jar编译 javac -cp %CLASSPATH% -d ./classes/ ./src/org/csource/common/*.java --先编译基础模块,并且指定class保存 ...

  10. sql 列集合

    STUFF((SELECT ','+CAST( TYZ_Bh  as varchar(10)) FROM #1 where 片区划分='江东' for xml path('')),1,1,'')