Maven学习

基础知识

maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具,可以帮助我们更有效的管理项目,极大可能的避免因运行环境不同导致的项目不能运行的问题。

maven文件目录

bin: mvn运行的一些脚本,m2.conf 配置文件

boot: 类加载器

conf :配置文件

lib :mvn运行时类库

Maven目录结构

maven项目目录

” title=””>

创建maven项目目录

用archetype插件来创自动建目录,有两种方式

  • mvn arcgetype:generate 按照提示里创建
  • mvn archetype:generate -DgruopId =xx -DartifactedId=xx -Dversion=xx -Dpackage=xx 一次性创建

groupId:一般为组织名,公司名网址的反写+项目名

artifactId:项目名-模块名

maven中的坐标和仓库

坐标:所有构件都通过坐标唯一确定位置

” title=””>

groupId artifactId 和 version组成坐标,在项目里建立包的时候,包名应该与groupId和artifactId相吻合

仓库

  • 本地仓库
  • 远程仓库 :本地找不到会从远程仓库中找,如果远程仓库没有的话则会报错 http://search.maven.org
  • 镜像仓库:外网无法访问时使用,maven-conf–>settings

    • Maven学习

      GroupID是项目组织唯一的标识符, 比如我的项目叫test001 那么GroupID应该是 com.lixiaoming.test001 域名.公司名.项目名

      ArtifactID就是项目的唯一的标识符, 一般是 项目名-xxx 比如test001-model

      在pom中配置依赖时,GroupID一般为组织名(比如org.apache.spark),ArtifatID一般为包名

      非编译器环境下建立mvn项目

      目录结构如上所示,根目录下有src和xml文件,src下要有main和test文件夹,各自文件夹下的包结构要规范

      ” title=””>

      pom配置如下图所示,主要添加项目所用到的包,dependency

      ” title=””>

      配置完后,在项目目录下进行编译(mvn compile),然后测试(mvn test)(测试部分的代码应该是没有被mvn compile编译的,当使用mvn test的时候才进行编译),最后打包(mvn package)

      pom的dependency-scope属性

      scope表示依赖的范围

      从官网可以看到一共有六个属性值,分别为compile,provided,runtime,test,system,import

      ” title=””>

      compile:在测试编译运行的时候都有效

      provided:在编译和测试的时候有效

      runtime:在测试和运行时有效

      test:只在测试的时候有效

      system:在编译和测试时有效,与本地系统(路径)相关

      import:表示从其他pom中继承过来的依赖,比如

      pom的依赖和依赖冲突

      依赖:

      在一个项目中的dependency中田添加另一个项目的坐标即可,一般会产生传递依赖,如果不需要传递依赖,就要配置exclusion标签,加坐标即可(被排除的包)

      依赖冲突:

      原则:

      1.短路优先:优先解析路径短的版本

      2.路径相同长度时,谁先声明谁优先

      聚合和继承

      聚合

      使用module时,packaging要使用pom

      继承

      避免配置重复,用父类,父类中的公共配置部分放到

      在子类中用parent标签引入父类的坐标即可

      文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树Java概览Maven基础92005 人正在系统学习中

      来源:很吵请安青争

      声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年6月22日
下一篇 2018年6月23日

相关推荐