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集成应用
- 进入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学习简介的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向类加载器 ClassLoader ( 类加载器源码简介 | BaseDexClassLoader | DexClassLoader | PathClassLoader )(代码片段
maven web项目的web.xml报错The markup in the document following the root element must be well-formed.(代码片段