maven-java包管理工具-01
maven只用来管理java项目,也是用java开发的
传统的项目因为包的管理有很多问题,所以才有的maven的诞生:
1. 项目开始的时候,确定项目中可能要使用到的包,然后下载包,复制粘贴到项目里面去--》maven只需要再确定包以后,将包的配置信息写进去就可以
2. 包导入完成之后,可能会有包冲突的问题,需要在原来的jar包里面找出冲突的jar包,然后删除--》maven只需要在pom.xml配置文件中删除某一个节点就可以;
3. 原来的项目大小可能很大,但是在使用maven以后,项目的大小会变得很小;
使用maven我们需要了解以下的概念:
一个java项目的开发包括一下的几个步骤:
1. 编码
2. 编译
3. 测试
4. 运行
5. 打包
6. 部署
而maven可以帮助我们完成:编译,测试,运行,打包,部署;也就是说我们只需要完成编码,其他的部分都可以交给maven去做。
下面开始安装和配置maven:
1. 下载maven
2. 配置环境变量
MAVEN_HOME:D:\Software\apache-maven-3.5.3
把maven_home添加到path里面:%MAVEN_HOME%\bin;
测试配置是否正确:cmd->mvn -v
下面介绍一个maven的几种仓库:
1. 本地仓库,自己来维护

2. 远程仓库(私服):一般是由公司维护
3. 中央仓库:maven团队维护
下面放一张使用maven以后的项目目录结构:

maven的常用命令:
1. clean : 清理编译的文件
2. compile:编译了主目录的文件
3. test:编译并运行了test目录的代码
4. package:打包
5.install:就是把项目发不到本地仓库
上面的命令是按照使用顺序排列的
多个命令可以同时使用:mvn clean package
下面说一下maven在eclipse中的配置步骤:
1. 配置maven的安装路径

2. 配置maven的本地仓库地址

下面是在eclipse中创建一个maven项目:
1. 新建maven项目

2. 跳过配置,直接生成完整的maven目录结构

3. 填写pom配置文件的初始配置

4. 完成后的目录如下所示:

5. 处理红色错误
手动在webapp文件夹下创建一个WEB-INF文件夹,在里面放一个web.xml文件

6. 处理编译版本
在pom.xml中添加如下代码:
<build>
<!-- 配置了很多插件 -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
7.创建一个servlet

8. 修改web.xml删除重复的代码

添加jar包,在pom.xml中添加如下代码:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency> </dependencies>
可以看见jar包已经存在于项目中了:

8. 启动项目
右键项目-》run as-》maven build

下面是依赖的管理
1. 添加依赖
打开maven仓库的视图

2. 重建索引

1、 创建maven项目(同上)
2、 跳过骨架(同上)
3、 填写坐标信息(同上)
4、 添加web.xml文件(同上)
5、 修改编译版本(同上)
添加坐标 选择Dependencies标签 点击add

3. 手动输入要添加的依赖的配置属性,选择版本

可以看到pom.xml文件里面多了以下的内容

maven管理jar包的几个原则
1. 第一声明优先原则
<dependencies>
<!-- spring-beans-4.2.4 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.2.4.RELEASE</version>
</dependency> <!-- spring-beans-3.0.5 -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>2.3.24</version>
</dependency>
2. 路径近者优先原则,也就是自己详细制定jar包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.2.4.RELEASE</version>
</dependency>
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> <!-- 锁定版本,struts2-2.3.24、spring4.2.4、hibernate5.0.7 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
maven-java包管理工具-01的更多相关文章
- Java基础-Eclipse第三方安装包管理工具之Maven
Java基础-Eclipse第三方安装包管理工具之Maven 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 玩过Linux的小伙伴应该都知道yum吧,我们只要把搭建好的yum仓库配 ...
- 前端工程化系列[01]-Bower包管理工具的使用
本文主要介绍前端开发中常用的包管理工具Bower,具体包括Bower的基本情况.安装.使用和常见命令等内容,最后还介绍了依赖树管理的常见方式以及Bower采用的策略并进行了比较. 1.1 关于Bowe ...
- NodeJS包管理工具——npm入门
如今每个语言体系中都有一个包管理工具,PHP的Composer,Ruby的gem,Python的pip,Java的Maven……当然还有Node.js的npm.有的人会奇怪为何要引入又一个新东西来让我 ...
- Go语言包管理工具dep
什么是dep? dep和go,在一定程度上相当于maven之于Java,composer之于PHP,dep是go语言官方的一个包管理工具. 相比较go get而言,dep可以直接给引入的第三方包一个专 ...
- Python包管理工具easy_install使用
easy_install是python的包管理工具,可以方便的下载.安装.更新python包,并可以自动处理相关依赖.类似于ruby的gem,java的maven,nodejs的npm. 安装方法有两 ...
- golang包管理工具及环境管理工具;如何下载外网的依赖包
简介: golang的包管理工具类似于java的maven.python的pip.js的npm,可以实现依赖包的统一管理:有很多:govendor.godep.glide,挑一个自己喜欢的用吧.mac ...
- [Todo]各种语言包管理工具
看到一篇文章不错: http://harttle.com/2015/05/29/pkg-manager.html 包管理和构建系统是现代的软件开发团队中必不可少的工具,也是Linux软件系统的常见组织 ...
- Go的包管理工具(一)
在前面转载了系列文章:Golang 需要避免踩的 50 个坑,总得来说阅读量都挺大.今天这篇文章,咱们一起聊聊Go的依赖包管理工具. 背景 每一门语言都有其依赖的生态,当我们使用Java语言的时候,使 ...
- Python 包管理工具解惑
Python 包管理工具解惑 本文链接:http://zengrong.net/post/2169.htm python packaging 一.困惑 作为一个 Python 初学者,我在包管理上感到 ...
随机推荐
- Python之路(第十篇)迭代器协议、for循环机制、三元运算、列表解析式、生成器
一.迭代器协议 a迭代的含义 迭代器即迭代的工具,那什么是迭代呢? #迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 b为何要有迭代器? 对于序列类型:字符串.列表 ...
- Mockplus3.5.0.1新增标注功能
Mockplus3.5.0.1版本中,新增了标注功能.多种标注模式,智能生成,随时查看.原型设计效率更高. Mockplus的标注功能有以下四种模式: 1.无选中标注 在未选中任何组件时,按住Ctrl ...
- python入门之字典
1.字典的基本特征: key-value结构 key唯一,必须为不可变数据类型 value可以不唯一 无序 查找速度快 2.创建一个字典: info={“gaohui”:"IT", ...
- python中的特殊成员
python中的特殊成员: 小甲鱼论坛总结
- 836. Rectangle Overlap
class Solution { public: bool isRectangleOverlap(vector<int>& rec1, vector<int>& ...
- 将爬取的网页数据保存到数据库时报错不能提交JPA,Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\xB6 \xE2...' for column 'content' at row 1
错误原因:我们可以看到错误提示中的字符0xF0 0x9F 0x98 0x84 ,这对应UTF-8编码格式中的4字节编码(UTF-8编码规范).正常的汉字一般不会超过3个字节,为什么为出现4个字节呢?实 ...
- 2018.11.24 poj1743Musical Theme(二分答案+后缀数组)
传送门 代码: 二分答案. 然后对于预处理的heightheightheight数组分成几段. 保证每一段中都是连续的几个heightheightheight并且这些heightheightheigh ...
- Java对象的克隆
今天要介绍一个概念,对象的克隆.本篇有一定难度,请先做好心理准备.看不懂的话可以多看两遍,还是不懂的话,可以在下方留言,我会看情况进行修改和补充. 克隆,自然就是将对象重新复制一份,那为什么要用克隆呢 ...
- 关于拼接SQL语句sqlMap的使用方法
1.为什么使用? 主要还是为了代码中获取到值,然后带入SQL语句中拼接查询 2.怎么使用? 1)bean继承了BaseEntity类,该类中有 /** * 自定义SQL(SQL标识,SQL内容) */ ...
- 安装完ubuntu后需要安装的软件
ubuntu安装完sudo apt-get install vim g++ openssh-server libgl1-mesa-dev vmtools