一: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. JavaScript 实现用户点击图片放大

    JavaScript 实现用户点击图片放大 一.契机 情况是这样的,之前推荐朋友去建站.后面他专门写了一篇文章说如何实现 "用户点击图片实现放大效果",俺就好好 "拜读& ...

  2. POJ1475 Pushing Boxes(双搜索)

    POJ1475 Pushing Boxes  推箱子,#表示墙,B表示箱子的起点,T表示箱子的目标位置,S表示人的起点 本题没有 Special Judge,多解时,先最小化箱子被推动的次数,再最小化 ...

  3. 北京DNS

    202.106.0.20 202.106.196.115 202.106.46.151

  4. JDBC完成增加-修改-增加-查询

    JDBC的基本使用流程: 增加    1 导入jar包:        导入ojdbc6.jar,在项目上右键 builder path-->add to builder path.    2 ...

  5. jenkins配置以cygwin环境的子节点

    1.为Cygwin配置上sshd服务 ⑴.双击点击如下安装文件,并一直选取下一步 ⑵.到这个步骤停止,并且在search栏里输入openssh,并下载搜出的两个程序 ⑶.下载好以后以管理员权限打开cy ...

  6. 利用java实现一个简单的链表结构

    *博客搬家:初版发布于 2014/07/04 定义: 所谓链表就是指在某节点存储数据的过程中还要有一个属性用来指向下一个链表节点,这样的数据存储方式叫做链表 链表优缺点: 优点:易于存储和删除 缺点: ...

  7. 高阶篇:4.3)FTA故障树分析法-DFMEA的另外一张脸

    本章目的:明确什么是FTA,及与DFMEA的关系. 1.FTA定义 故障树分析(FTA) 其一:故障树分析(Fault Tree Analysis,简称FTA)又称事故树分析,是安全系统工程中最重要的 ...

  8. 【算法笔记】B1034 有理数四则运算

    1034 有理数四则运算 (20 分)   本题要求编写程序,计算 2 个有理数的和.差.积.商. 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母 ...

  9. 51nod1238. 最小公倍数之和 V3(数论)

    题目链接 https://www.51nod.com/Challenge/Problem.html#!#problemId=1238 题解 本来想做个杜教筛板子题结果用另一种方法过了...... 所谓 ...

  10. 20190430-Bootstrapの组件

    写在前面的乱七八糟:今天务必要把BT盘完~任重道远~ 目录 1.字体图标 2.下拉菜单 3.按钮组 4.输入框组 5.导航 5.1标签页 5.2胶囊式标签页 5.3路径导航/面包屑导航 6.导航条 7 ...