Maven学习简介

Posted alves

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven学习简介相关的知识,希望对你有一定的参考价值。

Maven简介

什么是maven?

Maven翻译为“专家”“内行”。是Apache下的一个纯java开发的开源项目,他是一个项目的管理工具,对java项目进行构建,依赖管理。管理项目的整个生命周期,项目的生命周期:构建项目、编译、运行、测试、打包、生成文档、发布等各个环节都可以进行管理。

Maven的主要功能:

构建项目,主代码区、测试代码区、配置文件区、web文件区等

jar包管理,导入jar包需要在pom.xml配置即可(也可以自动导入依赖jar包、版本匹配问题都解决了)

依赖编译,有多个项目存在依赖关系,可以关联编译。

其他测试、打包、发布等等也可以应用

技术分享图片

 

Maven仓库的作用

     Maven的工作需要从仓库下载一些jar包,如上图,本地的项目都会通过maven软件从远程仓库(可以理解为互联网仓库)下载jar包并存放在本地仓库,本地仓库就是本地文件夹,当第二次需要此jar包时则不再从远程仓库下载,因为本地仓库已经存在了,可以将本地仓库理解为缓存,有了本地仓库就不用每次从远程仓库下载了

     本地仓库:用来存储从远程仓库或中央仓库下载的插件和jar包,项目使用一些插件和jar包,优先从本地库查找

     远程仓库:如果本地需要插件或者jar包,本地仓库没有,默认去远程仓库下载,远程仓库可以在互联网也可以在局域网

     中央仓库:在maven软件中内置了一个远程仓库地址:http://repo1.maven.org/maven2,他是中央仓库,服务于整个互联网,它是由maven团队在维护,里面存放了非常全的ja包,它包含了世界上大部分流行的开源项目构建。

Maven的好处

Maven主要目标是提供开发人员,开发人员不需要创建过程本身,不必知道提到的每

一个配置的详细信息。Maven对项目构建的过程进行标准化,通过一个命令即可完成

构建过程。Maven提供了合理的默认行为的项目。创建一个Maven项目时,Maven创建

默认的项目结构。开发者只需要把相应的文件和她需要在pom.xml中定义即可。Maven项目就减少了很多的分量,Maven的跨平台,可在windows、Linux上使用。Maven遵

循规范开发有利于提高大型团队的开发效率,降低项目的维护成本。Maven项目管理

所依赖的jar包不需要手动向工程中添加jar包,只需要在pom.xml添加jar包的坐标,自动从Maven仓库下载jar包,通过pom.xml文件对jar包的版本进行统一管理,可避免版本冲突Maven的使用

     准备工作:下载apache-maven工具包,然后解压到磁盘的某个位置待使用,下面是maven的下载地址 http://maven.apache.org/download.cgi

     bin目录 mvn.bat(以run方式运行项目)、mvnDebug.bat(以debug方式运行项目)

     boot目录maven运行需要的类加载器

     conf目录settings.xml整个maven工具核心配置文件

    lib目录maven运行依赖的jar包

     命令行应用 (为了使用方便可以配置PATH环境变量)。

      mvn compile 编译源代码

      mvn deploy 发布项目

      mvn clean 清除项目目录中的生成结果

      mvn install 在本地Repository中安装jar

      mvn build 编译后打成jar

和eclipse集成应用

  1.  进入Window-preferences窗口,点击左边maven项设置路径

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

这边Maven环境搭建完毕,settings文件配置记得要改成阿里云的仓库,不然下载起来很麻烦,具体配置修改找度娘就可以了

利用eclipse创建maven project

Ctrl+N新建一个Maven工程

技术分享图片

技术分享图片

技术分享图片

技术分享图片

建完的工程可能会报错,因为我们选择的是war工程,右键项目名->java EE Tools->Generate就可以了

这边是Maven的整个工程架构和文件信息

 技术分享图片

 

这里面是pom.xml的文件信息

<groupId>cn.chf</groupId>    <!--组名,一般是 域名 + 公司/组织名 + 项目名-->
  <artifactId>MavenTest</artifactId>  <!--模块名,项目名-->
  <version>0.0.1-SNAPSHOT</version> <!-- 版本号-->
  <packaging>war</packaging>    <!-- 项目类型--> 

依赖的详细配置

dependencies:一个 pom.xml 文件中只能存在一个这样的标签。用来管理依赖的总标签。

dependency:包含在dependencies标签中,可以有无数个,每一个表示一个依赖 groupId,artifactId和version:依赖的基本坐标,对于任何一个依赖来说,基本坐标是最重要的,Maven根据坐标才能找到需要的依赖

type:依赖的类型,对应于项目坐标定义的packaging。大部分情况下,该元素不必声明,其默认值是jar。

scope:依赖的范围,默认值是 compile。后面会进行详解。

optional:标记依赖是否可选。                   

exclusions:用来排除传递性依赖

搭建Maven聚合工程

   在真实项目中,一个项目有表现层、业务层、持久层等。聚合一般是一个工程拆分成多个模块开发,每个模块是一个独立的工程,但要是运行时必须把所有模块聚合到一起才是一个完整的工程。比如项目的权限模块,接口模块,实体类模块等,就可以针对不同的模块单独创建工程,将其他各个模块都由聚合工程来管理,那我们发布项目的时候只需要打包这个聚合工程就可以了

  1 创建聚合工程父工程(聚合工程打包方式必须为pom工程, 管理jar包的版本号。)

   技术分享图片

2 创建子工程(业务层,业务层)    

  技术分享图片

 技术分享图片

技术分享图片

3 创建子工程(持久层,逻辑基本和业务层一致,懒得截图了都是一样的操作)

4 创建表现层(表现层的打包方式为WAR包)

 技术分享图片

表现层创建完成报错和上面一样 添加web.xml就可以了

 技术分享图片

 

这边我们的Maven聚合工程就搭建完成了,是不是技能点+1

 

以上是关于Maven学习简介的主要内容,如果未能解决你的问题,请参考以下文章

Maven学习-简介安装

maven学习maven的简介

Android 逆向类加载器 ClassLoader ( 类加载器源码简介 | BaseDexClassLoader | DexClassLoader | PathClassLoader )(代码片段

在PaddlePaddle中的Notebook代码片段

maven web项目的web.xml报错The markup in the document following the root element must be well-formed.(代码片段

IDEA从零到精通(17)之IDEA中用Maven创建springboot项目