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的更多相关文章

  1. Java基础-Eclipse第三方安装包管理工具之Maven

    Java基础-Eclipse第三方安装包管理工具之Maven 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 玩过Linux的小伙伴应该都知道yum吧,我们只要把搭建好的yum仓库配 ...

  2. 前端工程化系列[01]-Bower包管理工具的使用

    本文主要介绍前端开发中常用的包管理工具Bower,具体包括Bower的基本情况.安装.使用和常见命令等内容,最后还介绍了依赖树管理的常见方式以及Bower采用的策略并进行了比较. 1.1 关于Bowe ...

  3. NodeJS包管理工具——npm入门

    如今每个语言体系中都有一个包管理工具,PHP的Composer,Ruby的gem,Python的pip,Java的Maven……当然还有Node.js的npm.有的人会奇怪为何要引入又一个新东西来让我 ...

  4. Go语言包管理工具dep

    什么是dep? dep和go,在一定程度上相当于maven之于Java,composer之于PHP,dep是go语言官方的一个包管理工具. 相比较go get而言,dep可以直接给引入的第三方包一个专 ...

  5. Python包管理工具easy_install使用

    easy_install是python的包管理工具,可以方便的下载.安装.更新python包,并可以自动处理相关依赖.类似于ruby的gem,java的maven,nodejs的npm. 安装方法有两 ...

  6. golang包管理工具及环境管理工具;如何下载外网的依赖包

    简介: golang的包管理工具类似于java的maven.python的pip.js的npm,可以实现依赖包的统一管理:有很多:govendor.godep.glide,挑一个自己喜欢的用吧.mac ...

  7. [Todo]各种语言包管理工具

    看到一篇文章不错: http://harttle.com/2015/05/29/pkg-manager.html 包管理和构建系统是现代的软件开发团队中必不可少的工具,也是Linux软件系统的常见组织 ...

  8. Go的包管理工具(一)

    在前面转载了系列文章:Golang 需要避免踩的 50 个坑,总得来说阅读量都挺大.今天这篇文章,咱们一起聊聊Go的依赖包管理工具. 背景 每一门语言都有其依赖的生态,当我们使用Java语言的时候,使 ...

  9. Python 包管理工具解惑

    Python 包管理工具解惑 本文链接:http://zengrong.net/post/2169.htm python packaging 一.困惑 作为一个 Python 初学者,我在包管理上感到 ...

随机推荐

  1. [Robot Framework] 执行时报 webdriver 异常

    在用Robot Framework通过Selenium2Library做web界面自动化测试的时候,报webdriver的错误: 此种情况是因为WebDriver的版本与浏览器的版本不对应. WebD ...

  2. [SoapUI] Groovy获取HTTP Status

    def value = messageExchange.responseHeaders["#status#"] def httpResponseHeaders = context. ...

  3. linux(centOS7,mini),python环境的搭建

    今天想试一试python在linux下的工作,在vmware中安装了centOS7版本的linux,先前装过一个带GUI的,但是感觉在虚拟机理跑的太慢,干脆直接装一个最精简的mini版,试一下ifco ...

  4. Vue单页面应用

    单页面应用指一个系统只加载一次资源,然后下面的操作交互.数据交互是通过router.ajax来进       行,页面并没有刷新:<1>在vue搭建的环境里面怎么有没有公用的css和js? ...

  5. Java关键字解释及作用

    JAVA 关键字及其作用解释 1. 访问控制 1) private 私有的 private 关键字是访问控制修饰符,可以应用于类.方法或字段(在类中声明的变量). 只能在声明 private(内部)类 ...

  6. vue父传子

    父组件传递数据给子组件用props,父组件中使用子组件,子组件用props接收父组件数据. Home父组件代码: <template> <div> {{test}} <! ...

  7. C++ MFC棋牌类小游戏day1

    好用没用过C++做一个完整一点的东西了,今天开始希望靠我这点微薄的技术来完成这个小游戏. 我现在的水平应该算是菜鸟中的战斗鸡了,所以又很多东西在设计和技术方面肯定会有很大的缺陷,我做这个小游戏的目的单 ...

  8. C++ cout

    cout.flush() cout.put() 输出一个字符 char* p = "hello"; cout.write(p,sttrlen(q)-3) 输出字符串,能够选定长度. ...

  9. SQL语句之奇形怪状的冷门函数

    lag() over() ) OVER(ORDER BY C.column) FROM Table C; 第一条记录已经无法再取前一条记录,所以LAG()函数返回空. SQL为意思如下. LAG(C. ...

  10. ArcGIS 关于Web_Mercator

    #小知识#EPSG,即 European Petroleum Standards Group 欧洲石油标准组织 在ArcGIS 10中Web Mercator有三种EPSG编号.他们分别是EPSG38 ...