maven scope


1)详解

对于scope=compile的情况(默认scope),也就是说这个项目在编译,测试,运行阶段都需要这个artifact(模块)对应的jar包在classpath中。 

而对于scope=provided的情况,则可以认为这个provided是目标容器已经provide这个artifact。换句话说,它只影响到编译,测试阶段。在编译测试阶段,我们需要这个artifact对应的jar包在classpath中,而在运行阶段,假定目标的容器(比如我们这里的liferay容器)已经提供了这个jar包,所以无需我们这个artifact对应的jar包了。

2)依赖范围

maven中三种classpath 

编译,测试,运行 

1.compile:默认范围,编译测试运行都有效 

2.provided:在编译和测试时有效 

3.runtime:在测试和运行时有效 

4.test:只在测试时有效 

5.system:在编译和测试时有效,与本机系统关联,可移植性差

3)pom.xml常用元素介绍

project 包含pom一些约束的信息 

modelVersion 指定当前pom的版本 

groupId(主项目标示,定义当前maven属于哪个项目,反写公司网址+项目名)、 

artifactId(实际项目模块标识,项目名+模块名)、 

version(当前项目版本号,第一个0标识大版本号,第二个0标示分支版本号,第三个0标识小版本号,0.0.1,snapshot快照,alpha内部测试,beta公测,release稳定,GA正式发布) 

name项目描述名 

url项目地址 

description项目描述 

developers开发人员列表 

licenses许可证 

organization:组织 

dependencies:依赖列表 

dependency:依赖项目 里面放置坐标 

scope:包的依赖范围 test 

optional :设置依赖是否可选 

exclusions:排除依赖传递列表 

dependencyManagement 依赖的管理 

build:为构建行为提供支持 

plugins:插件列表 

parent:子模块对父模块的继承 

modules:聚合多个maven项目

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • compile,缺省值,适用于所有阶段,会随着项目一起发布。compile is the default scop...
    lyc365happy阅读 333评论 0 2
  • Maven Scope(依赖范围)小总结 先来下比较官方解释: 在Maven的世界中,有很多种classpath,...
    martin6699阅读 1,093评论 0 0
  • 依赖范围控制哪些依赖在哪些classpath中可用,哪些依赖包含在一个应用中。让我们详细看一下每一种范围: com...
    极简架构阅读 225评论 0 1
  • 依赖范围控制哪些依赖在哪些classpath 中可用,哪些依赖包含在一个应用中。让我们详细看一下每一种范围:com...
    zlb阅读 274评论 0 0
  • 在2018年所剩无几的日子里,我们迎来了黑夜最长的一天——冬至。可能是我从小传统文化培养的不够,我对于二十四...
    何鑫彤阅读 507评论 0 5