Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Maven 的 Scope 区别,你知道吗?

Maven 的 Scope 区别,你知道吗?

作者头像
好好学java
发布于 2020-03-20 13:04:19
发布于 2020-03-20 13:04:19
2.5K00
代码可运行
举报
运行总次数:0
代码可运行

1、依赖的Scope

scope定义了类包在项目的使用阶段。项目阶段包括: 编译,运行,测试和发布。

2、分类说明

compile

默认scope为compile,表示为当前依赖参与项目的编译、测试和运行阶段,属于强依赖。打包之时,会达到包里去

test

该依赖仅仅参与测试相关的内容,包括测试用例的编译和执行,比如定性的Junit。

runtime

依赖仅参与运行周期中的使用。一般这种类库都是接口与实现相分离的类库,比如JDBC类库,在编译之时仅依赖相关的接口,在具体的运行之时,才需要具体的mysql、oracle等等数据的驱动程序。 此类的驱动都是为runtime的类库。

provided

该依赖在打包过程中,不需要打进去,这个由运行的环境来提供,比如tomcat或者基础类库等等,事实上,该依赖可以参与编译、测试和运行等周期,与compile等同。区别在于打包阶段进行了exclude操作。

system

使用上与provided相同,不同之处在于该依赖不从maven仓库中提取,而是从本地文件系统中提取,其会参照systemPath的属性进行提取依赖。

import

这个是maven2.0.9版本后出的属性,import只能在dependencyManagement的中使用,能解决maven单继承问题,import依赖关系实际上并不参与限制依赖关系的传递性。

3、systemPath

当maven依赖本地而非repository中的jar包,sytemPath指明本地jar包路径,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dependency>
    <groupid>org.hamcrest</groupid>
    <artifactid>hamcrest-core</artifactid>
    <version>1.5</version>
    <scope>system</scope>
    <systempath>${basedir}/WebContent/WEB-INF/lib/hamcrest-core-1.3.jar</systempath>
</dependency>

4、dependency中的type

引入某一个依赖时,必须指定type,这是因为用于匹配dependency引用和dependencyManagement部分的最小信息集实际上是{groupId,artifactId,type,classifier}。在很多情况下,这些依赖关系将引用没有classifier的jar依赖。这允许我们将标识设置为{groupId,artifactId},因为type的默认值是jar,并且默认classifier为null。 type的值一般有jar、war、pom等,声明引入的依赖的类型

5、dependency中的classifier

Classifier可能是最容易被忽略的Maven特性,但它确实非常重要,我们也需要它来帮助规划坐标。设想这样一个情况,有一个jar项目,就说是 dog-cli-1.0.jar 吧,运行它用户就能在命令行上画一只小狗出来。现在用户的要求是希望你能提供一个zip包,里面不仅包含这个可运行的jar,还得包含源代码和文档,换句话说,这是比较正式的分发包。这个文件名应该是怎样的呢?dog-cli-1.0.zip?不够清楚,仅仅从扩展名很难分辨什么是Maven默认生成的构件,什么是额外配置生成分发包。如果能是dog-cli-1.0-dist.zip就最好了。这里的dist就是classifier,默认Maven只生成一个构件,我们称之为主构件,那当我们希望Maven生成其他附属构件的时候,就能用上classifier。常见的classifier还有如dog-cli-1.0-sources.jar表示源码包,dog-cli-1.0-javadoc.jar表示JavaDoc包等等。 classifier它表示在相同版本下针对不同的环境或者jdk使用的jar,如果配置了这个元素,则会将这个元素名在加在最后来查找相应的jar,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<classifier>jdk17</classifier>
<classifier>jdk18</classifier>
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 好好学java 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
生信DAY7
用户10696411
2023/08/13
2190
Day7-i 生信星球学习--测序知识
PacBio公司的SMRT和Oxford Nanopore Technologies 的纳米孔单分子测序技术——目前来说准确率较低
用户10986167
2024/02/25
1240
生信学习小组day7土
用户10633738
2023/07/03
1530
Day7——测序知识--迪迪
掩扉先生
2023/10/26
2680
Day7——查布铎徳勒
主要通过合成dna时,通过添加ddNTP阻断dna的合成,利用放射性ddNTP通过凝胶电泳分离和放射自显影来读取序列。
用户10663172
2023/07/23
1910
D7-测序原理-张三
用户10664162
2023/07/24
1720
illumina、Sanger、第三代和第四代测序技术原理
1953年4月,Watson和Crick关于DNA双螺旋结构的文章发表于Nature,成为生物学研究的里程碑。此后,生命科学进入了DNA解密的时代。道德经所言“道生一,一生二,二生三,三生万物”,这“三生万物”需要的竟然仅仅是四种碱基的排列组合。生命的秘密藏在DNA序列中,首要任务,便是测出这序列内容。1970年,吴瑞先生建立了位置特异性引物延伸的测序方法,开了DNA测序技术的先河。随后在1975年,Sanger建立了自己的测序方法。1977年Gilbert等人建立了化学降解法,同年,Sanger改进了之前的方法,确立了日后第一代测序的主流方法:Sanger测序法。
DoubleHelix
2020/07/09
6.9K0
illumina、Sanger、第三代和第四代测序技术原理
RNA-seq这十年(3万字长文综述)
我们在生信菜鸟团公众号举办的每周文献精选活动,菜鸟团一周文献推荐(No.20)广受好评的是大神级的RNA-Seq综述,题目:RNA sequencing: the teenage years ,所以在我们生信技能树VIP交流群也得到了关注。
生信技能树
2019/08/08
13.8K0
RNA-seq这十年(3万字长文综述)
了解测序这件事
Thermofisher:https://www.thermofisher.com
生信喵实验柴
2021/12/21
9940
了解测序这件事
面向转录组测序数据分析和机器学习方法的植物生物信息学应用新趋势
分析植物适应环境变化和胁迫反应的分子机制对植物生物技术至关重要。其中关键方法包括生物信息学方法、高通量测序和后基因组技术。测序和系统生物学方法提供了从分子到细胞、器官和种群水平的植物生长的全面视图。基因组学和生物信息学促进了植物细胞中蛋白质-蛋白质和基因调控相互作用的建模,为更好的作物生产和可持续性提供了基础。植物-病原体相互作用研究补充了这一领域的网络建模。
生信菜鸟团
2024/07/10
2470
面向转录组测序数据分析和机器学习方法的植物生物信息学应用新趋势
生物信息学入门必须了解的名词
生物信息学(bioinformatics):综合计算机科学、信息技术和数学的理论和方法来研究生物信息的交叉学科。包括生物学数据的研究、存档、显示、处理和模拟,基因遗传和物理图谱的处理,核苷酸和氨基酸序列分析,新基因的发现和蛋白质结构的预测等。
DoubleHelix
2020/04/21
3K0
Day7-学习笔记(2023年2月4日)测序
原理介绍视频:https://share.weiyun.com/5qojuBY 密码: 密码:bxsry4
用户10954357
2024/02/04
4580
day7金金-测序技术
早在1954年,Whitfeld等就提出了测定多聚核糖核苷酸链的降解法,该方法利用磷酸单酯酶的脱磷酸作用和高碘酸盐的氧化作用从链末端逐一分离寡核糖核苷酸并测定其种类。目的就是想通过这种一个一个“数”的方法来得到DNA的碱基顺序。
用户10838900
2023/11/19
2210
长读长单分子实时测序揭示食管鳞状细胞转录组的异质性和复杂性
果然,坚持真的好难,我现在都想不通我是如何坚持七八年每日写笔记做分享,积累着1.3万篇教程的?
生信技能树
2020/09/22
8350
专注于多组学数据处理的生物信息学书籍推荐
这里给大家推荐一下一本关于生物信息学(Bioinformatics)的专著,专注于组学(Omics)技术及其数据分析,标题也是朴实无华哦:《Bioinformatics for Omics Data》,另外就是非常值得强调的是书籍居然是2011年的!
生信技能树
2024/11/21
2370
专注于多组学数据处理的生物信息学书籍推荐
Nature综述|整合组学分析护航健康,推动精准医学时代的到来!
Konrad J. Karczewski, and Michael P. Snyder撰写的关于整合多组学在疾病研究中的应用一文《Integrative omics for health and disease》,于2018年2月26日发表在nature reviews genetics (Nature系列综述, 2018 IF: 41.465)。
生信宝典
2019/10/06
6K0
WGS,WES,RNA-seq组与ChIP-seq之间的异同
全外显子(Whole-exome sequencing)测序是啥?转录组(RNA-seq)测序是啥?ChIP-seq又是啥?它们之间有什么差别么?傻傻分不清,不用怕,多学习下就会了,下面让我们一起来从平均测序深度和区域覆盖度的角度来区分它们吧! 1 基础概念 平均测序深度: 指定区域内得到的所有碱基数目与该区域的长度的比值,如果是全基因组,就是整个测序的碱基数目除以基因组的大小。比如人类的基因组大小是3G(30亿个碱基),我的全基因组测序共8.9亿条150bp的reads,那么全基因组范围的平均测序深度就是
生信技能树
2018/03/08
2.8K0
WGS,WES,RNA-seq组与ChIP-seq之间的异同
PseudoChecker: 一个推断基因失活的在线平台
PseudoChecker: an integrated online platform for gene inactivation inference
作图丫
2022/03/29
5890
PseudoChecker: 一个推断基因失活的在线平台
N. Engl. J. Med. | 人工智能在分子医学中的应用
新的方法,如基因组测序和质谱技术,大大增加了科学家和医疗专业人员获取更精确诊断和增强治疗精准度所需的分子数据的数量。虽然在DNA和RNA的基因测序方面取得了最大的进展,但蛋白质和代谢物高维度测量的医疗应用也在增加。为了适应这些分子“大数据”的数量、速度和多样性,分析工具也得到了改进。机器学习的出现被证明特别有价值。在这些方法中,计算机系统使用大量数据构建预测性统计模型,并通过整合新数据进行迭代改进。深度学习是机器学习的一个强大子集,其中包括使用深度神经网络,已在图像对象识别、语音识别、自动驾驶和虚拟助理等领域具有高知名度的应用。现在,这些方法正在医学领域应用,以提供临床指导性的医疗信息。在这篇综述文章中,作者简要描述了生成高维分子数据的方法,然后重点介绍了机器学习在这些数据的临床应用中扮演的关键角色。
DrugAI
2023/09/19
2020
N. Engl. J. Med. | 人工智能在分子医学中的应用
RNA测序数据科学:从原始数据到有效解读——来自跨学科团队的技术指南
标题:RNA-seq data science: From raw data to effective interpretation
简说基因
2025/03/21
3400
RNA测序数据科学:从原始数据到有效解读——来自跨学科团队的技术指南
推荐阅读
相关推荐
生信DAY7
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验