170911-关于maven的知识点

简介:    什么是maven

是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的.

Maven的好处?

节省空间

就是对jar包的统一管理就是对jar包的统一管理,依赖管理

一键构建, 可跨平台

1.自动化构建和项目管理工具

Ant→Make→Maven→Gradle

2.Maven概述

①读音:妹文、麦文

②Maven作用一:自动化构建

③Maven作用二:依赖管理

④Maven作用三:项目信息管理

3.自动化构建

①构建[build]:将程序员编写的代码从源文件到服务器部署的整个过程。

清理→编译→测试→报告→打包→部署→运行……

②自动化构建:将构建过程中的各个操作步骤交给构建工具自动完成。

4.依赖管理

①依赖复杂性

[1]路径最短者优先

MakeFriends --------> HelloFriends----------->Hello

||

log4j.2.1.14    ------->     log4j.2.1.17

[2]路径相同时,先声明者优先

MakeFriends --------> HelloFriends ------>log4j.2.1.14

-------------->OurFriends   ------->log4j.2.1.17

②版本冲突的解决方案

[1]调节原则:

[1]路径最短者优先原则

[2]路径相同时,先声明者优先原则

[2]排除原则

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>servlet-api</artifactId>

<version>2.5</version>

<exclusions>

<exclusion>

<groupId></groupId>

<artifactId></artifactId>

<!--这里不需要指定版本号 -->

</exclusion>

</exclusions>

<scope>provided</scope>

</dependency>

[3]版本锁定原则

<dependencyManagement>

<dependencies>

<dependency>

<!--jar包坐标 -->

<groupId></groupId>

<artifactId></artifactId>

<version></version>

</dependency>

</dependencies>

</dependencyManagement>

版本锁定之后,后面再使用到这个的 依赖的时候,就不要写版本号了!

而且如果有多个相同的需要锁定的jar包的版本号一致的话,我们可以单独提取到properties标签中,

在properties标签中,子标签自己定义,标签的值就是版本号,下面只需要在依赖的地方用${}引用就可以了!

③依赖方式

[1]在pom.xml配置文件中使用dependencies/dependency元素配置依赖信息

[2]通过目标jar包的坐标找到被依赖的文件

④依赖范围

默认compile:当前所依赖的jar包是当前Maven工程中所有类都需要使用的,最终也需要参与打包。

test:只是当前工程中的测试类需要,最终不参与打包。

provided:当工程在服务器上运行起来后,可以由服务器提供,所以也只是在开发或测试时使用,部署到服务器上时就不需要。    ……

⑤一个自己开发的Maven工程,需要执行“安装”命令,才能够被放入到仓库中。

5.项目信息管理   将项目信息生成一个静态站点,用于展示。

6.Maven程序本身安装

①要求当前系统环境下配置了JAVA_HOME

在CMD命令行中输入:echo %JAVA_HOME% 如果能出来JDK的安装目录,说明我们配置了JAVA环境

②将Maven的ZIP压缩包解压到一个非中文无空格目录下【maven.apache.org官方网站下载jar包】

apache-maven-3.3.9-bin.zip

③.配置环境变量,用mvn -v查看是否正确配置了maven【要配置jdk,  maven3.3.9这个版本所需的jdk版本必须要1.7以上】

path:

D:\DevSoft\apache-maven-3.3.9\bin

mvn -v查看maven版本

④.先了解一下maven的目录结构:

projectname

-src

-main

-java

-package

-resources【配置文件或者说资源文件】

-test

-java

-package

-resources

pom.xml

按照上面的maven的目录结构创建一个maven项目,参照word文档!

⑤当针对某个Maven工程执行诸如“编译”、“测试”、“打包”、“部署”等命令时,需要进入到pom.xml所在的目录下执行。

7.关于Maven联网

①联网下载内容:当前命令需要的Maven插件

②Maven主程序仅负责宏观调度,并不能执行具体的命令。而具体的命令是通过Maven插件完成的。

③Maven主程序会首先到本地仓库目录下查找需要的插件,若没有则联网从“中央仓库”下载。若当前环境不能联网则无法执行构建命令。

④可以修改Maven默认的本地仓库路径,使其指向一个提前下载好的目录    配置文件路径

Maven解压目录/conf/settings.xml

修改

<localRepository>D:\Maven\Repository</localRepository>

mvn -v 查看maven的版本号

clean

compile 编译

test  测试

package 打包(并将jar包放入到target的目录中)

site 生成一个站点

clean 删除target目录

install 安装jar包到本地仓库中

自动创建目录的两种方式:

1.mvn archetype:generate 按照提示进行选择

2.mvn archetype:generate -DgroupId=组织名,公司网址的反写+项目名

-DartifactId=项目名-模块名

-Dversion=版本号

-Dpackage=代码所存在的包名

8.Project Object Model项目对象模型

①Maven将一个Java工程的相关信息封装后得到的对象。简称POM。

②POM配置集中体现在pom.xml文件中,作为一个Maven工程,pom.xml是最核心的配置文件,作用相当于动态Web工程的web.xml。

9.约定的目录结构

①Maven之所以能够实现自动化构建,其中一个很重要的原因是要求将特定的文件保存在指定的目录中。

Hello [工程根目录]

--src [存放源代码文件]

-----main [存放主程序目录]

---------java [存放.java源文件]

---------resources [资源文件或配置文件]

-----test [存放测试程序目录]

---------java [存放.java源文件]

---------resources [资源文件或配置文件]

--pom.xml 核心配置文件]

②思想:Convention Over Configuration 约定优于配置

10.maven的几个概念:

1.坐标

①数学坐标:平面中使用横纵两个坐标系可以唯一的定位平面中的任何一个点。

向量x:横坐标     向量y:纵坐标

②使用三个向量在Maven仓库中唯一的定位一个Maven工程。

向量groupid:公司或组织的名称+项目名称     向量artifactId:模块名称     向量version:模块版本

<groupId>com.neuedu.maven</groupId>

<artifactId>Hello</artifactId>

<version>0.0.1-SNAPSHOT</version>

③如何根据坐标zhao到仓库中查找对应的Maven工程

坐标

<groupId>org.springframework</groupId>

<artifactId>spring-core</artifactId>

<version>4.0.0.RELEASE</version>

仓库中的路径

org/springframework/spring-core/4.0.0.RELEASE/spring-core-4.0.0.RELEASE.jar

④如何查找指定jar包的坐标:

1.从maven仓库下载

http://search.maven.org/

http://mvnrepository.com/【建议使用这个】

时间: 2024-11-06 23:55:04

170911-关于maven的知识点的相关文章

eclipse下创建maven项目并部署到tomcat服务器(转)

maven项目部署到服务器有很多方法,可以利用jetty-maven-plugin或者tomcat-maven-plugin,这属于maven的知识点. 通常开发中,需要将项目放在服务器上借助开发工具进行调试,这里就写一下在eclipse中创建maven项目,并将它改造使之能够部署到集成在eclipse中的tomcat上面. 1.点击File-->New-->Project,选择Maven Project,点击Next 2  选择项目所在的java working set ,点击Next 3.

MAVEN初级应用之分环境构建

Chapter one . Article Purpose 前段时间总结了maven一些知识点,都是概念性和理解性的描述,对于应用方面乏陈可言. 这里分享下我在日常项目开发中普通项目简单的分环境打包.:) 这样的文章很多,但是在这里出现的才是我最喜欢的. Chapter two . Build in Pom.xml MAVEN应用的最佳实践可以说就是配置pom.xml文件的过程. 这里当然要简单分析下pom.xml文件的构建过程. 首先一个普通的项目,应该包含对成熟中间件的依赖和第三方jar包的

maven创建webapp

maven是一个近几年比较流行的jar包管理工具.很多开源项目或者demo代码都是基于maven的项目.优缺点javeeye有过很激烈的讨论.在此不做过多评价.但根据我的经验.使用过maven后再也不想回到过去往lib手动添加jar包的日子了..网上有很多关于maven的教程和说明.在此不做过多的赘言.首先下载maven3.maven下载地址解压后设置maven的系统变量.如下图.设置好m2_home和path的系统变量.输入 Java代码   mvn -version 出现图中所示表示安装成功

17.Maven 项目介绍

学习前提 相对于传统的项目,Maven 下管理和构建的项目真的非常好用和简单,所以这里也强调下,尽量使用此类工具进行项目构建. 学习本讲还有一个前提:你必须会 Maven 相关知识点,Maven 相关知识点是不在本专题的讲解范围里面的,所以请自己私下进行学习.如果愿意你也可以看我过去整理的一份材料:http://www.youmeek.com/intellij-idea-part-xviii-maven/ Maven 常用设置介绍 如上图标注 1 所示,我们可以指定我们本地 Maven 的安装目

Maven(二)核心知识点

Maven有一些核心的知识点需要了解,比如坐标.仓库.插件.生命周期等概念,这里将依次解释. 坐标 Maven以构件来组成基本的控制单元,而定义这个构件的标示,Maven给定义为“坐标”.坐标是Maven最基本的概念,它就像每个构件的身份证号码,有了它我们就可以在数以千万计的构件中定位任何一个我们感兴趣的构件. “坐标”这个词听起来很摸不着头脑,其实很简单,上一博客里面已经用到了,即下面这几个xml元素即组成了一个坐标 <groupId>com.company.maven01</grou

【maven】基本知识点

 一.作用域 依赖有效性/范围 依赖传递性 A 依赖 B,B 依赖 C,A 能否使用 C 呢?那要看 B 依赖 C 的范围是不是 compile,如果是则可用,否则不 可用. 二.父子工程 1.在子工程中引用父工程 <parent> <groupId>com.baker.learning</groupId> <artifactId>base-java</artifactId> <version>0.0.1-SNAPSHOT</v

Maven之pom知识点

1.dependencyManagement  和  dependencies: dependencyManagement在父级pom文件里,统一管理子项目所依赖的jar包版本,并不会引入jar包:子项目的pom文件里,只需指定需要jar包,而不需要指定版本号,它会去父级pom文件里查找版本号,然后引入对应的jar包,如果子项目需要其他版本号的,则直接在子项目的pom文件里加版本号. 2.snapshot 和 release 版本的区别: snapshot版本是尚在开发.不稳定的版本,若A项目需

分享Java的9个知识点

关于java编程的知识,有人会问哪些是重要的知识点,不知道大家是否都知道呢? 现在兄弟连www.lampbrother.net 小编给大家分享以下9点内容,仔细看咯! 1.多线程并发 多线程是Java中普遍认为比较难的一块.多线程用好了可以有效提高cpu使用率, 提升整体系统效率, 特别是在有大量IO操作阻塞的情况下;但是它也是一柄双刃剑, 如果用不好,系统非但提升不大,或者没有提升,而且还会带来多线程之间的调试时等问题. 在多线程中内容有很多,只是简单说明一下Java中初步使用多线程需要掌握的

Maven日常 —— 你应该知道的一二三

以前在日常工作中,使用Maven只是机械的执行Maven clean.Maven install,对其中的原理与过程并无了解,近期阅读了<Maven实战>,对Maven有了更深入的理解. 本篇就针对读书后的理解,对Maven的日常使用相关的知识进行总结与归纳. 如果想要了解更多内容参考:<Maven实战> 1 什么是Maven? 如果没有Maven,你可能不得不经历下面的过程: 1 如果使用了spring,去spring的官网下载jar包:如果使用hibernate,去hibern