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 初学者,我在包管理上感到 ...
随机推荐
- tomcat运行监控脚本,自动启动
参见:http://www.cnblogs.com/coffee_cn/p/8279165.html monitor.sh #!/bin/sh monitorlog=/usr/local/tomcat ...
- 转录组表达量计RPKM、FPKM、TPM说明
在转录组测序(RNA-Seq)中,基因的表达量是我们关注的重点.基因表达量的衡量指标有:RPKM.FPKM.TPM. RPKM:Reads Per Kilobase Million:说实话,这个英文说 ...
- 失踪的7(P1590&NOIP水题测试(2017082301))
题目链接:失踪的7 水题,不解释. #include<bits/stdc++.h> using namespace std; int main(){ int t; scanf(" ...
- 2018.12.17 bzoj1406 : [AHOI2007]密码箱(简单数论)
传送门 简单数论暴力题. 题目简述:要求求出所有满足x2≡1mod  nx^2\equiv1 \mod nx2≡1modn且0≤x<n0\ ...
- Android APP测试流程
一. Monkey测试(冒烟测试) 使用monkey测试工具进行如下操作: 1. APP的安装 2. APP随机操作测试(APP压力测试) 3. APP的卸载 二. 安装卸载测试 1. 使用测试真机进 ...
- boost--线程同步
1.互斥锁(互斥量) mutex是独占式的互斥锁.timed_mutex增加了超时功能. 成员函数:lock()用于锁定,try_lock()为非阻塞版本的锁定,unlock()用于解锁.timed_ ...
- ubuntu彻底删除apache2 再重装
删除apache2不彻底,导致用 apt-get install apache2 重新装时总是不成功.下面是如何彻底删除apache2 1. 删除apache 代码: $ sudo apt-get - ...
- 安卓修改开机logo
这里我们是在ubuntu下进行操作我是用root用户登陆的,首先安装netpbm库 执行:apt-get install netpbm 对于Android系统最开始表现logo是在内核当中,所以首先我 ...
- Redis-4.0.11集群配置
版本:redis-3.0.5 redis-3.2.0 redis-3.2.9 redis-4.0.11 参考:http://redis.io/topics/cluster-tutorial. 集群 ...
- 【笔记】CSS选择器整理(IE低版本支持性测试)
时间:2015.05.11 参考附件:css选择器.xmind(网友共享) 查看链接:http://www.w3school.com.cn/cssref/css_selectors.asp htt ...