pom 的scope标签分析】的更多相关文章

一.compile:编译范围compile是默认的范围:如果没有提供一个范围,编译范围依赖在所有的classpath 中可用,同时它们也会被打包.而且这些dependency会传递到依赖的项目中. 二.provided:已提供范围provided 说明了dependency 由JDK或者容器提供.例如如果开发了一个web 应用,可能在编译 classpath 中需要可用的Servlet API 来编译一个servlet,但是你不会想要在打包好的WAR 中包含这个Servlet API:这Serv…
问题介绍: 在maven项目中,最关键的就是pom.xml这个文件,这个文件是用来导入maven项目依赖的jar包以及一些插件等. 在这个文件中导入jar包使用的标签是<dependency>,而在这个标签下有一个子标签,叫做<scope>,它是有什么用处呢?下面我就来讲讲它的作用. 内容讲解: <scope>这个标签的主要作用有三个: 1.确定导入的jar包的有效区域.这里说的区域分别为: a)主程序区域: b)测试程序区域: 2.是否参与maven项目的打包: 项目…
在创建Maven项目时,需要在pom.xml 文件中添加相应的依赖,其中有一个scope标签,该标签是设置该依赖范围 (maven项目包含三种classpath{编译classpath,测试classpath.运行classpath})的,其可选配置:compile.test.provided.runtime.system和import. maven有以下几种依赖范围: compile:编译依赖范围,如果在依赖中没有配置该标签,则默认为该依赖范围.此依赖范围对 于编译.测试.运行三种classp…
前言 最近在做itoo的pom优化工作,发现对于maven依赖管理中的scope标签还是有不明白的地方,所以今天就来总结一下这方面的知识,scope在maven的依赖管理中主要负责项目的部署 maven的哲学在上次技术分享的时候也提到了:约定大于配置,所以在maven中,很多内容都有默认值,scope的默认值是compile,那么scope还能有哪些选项呢? scope的分类 1.compile:默认值 他表示被依赖项目需要参与当前项目的编译,还有后续的测试,运行周期也参与其中,是一个比较强的依…
在一个maven项目中,如果存在编译需要而发布不需要的jar包,可以用scope标签,值设为provided.如下: <dependency>            <groupId>javax.servlet.jsp</groupId>            <artifactId>jsp-api</artifactId>            <version>2.1</version>            <…
pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其他所有的项目相关因素. [xml] view plain copy print? <span style="padding:0px; margin:0px"><project xmlns="http://maven.apache.org/POM/4.0.0&…
转自:https://blog.csdn.net/wf787283810/article/details/76188595 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http:/…
在使用maven配置时,有时候会见到scope这个标签,但是总是记不住他们所对应的含义,现在整理一下,以后忘记了再来查看. 版权声明:本文为CSDN博主「MrZhangBaby」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/mrzhangbaby/article/details/97129177 scope具体含义如下: compile (编译范围)         compile 是默认值,如果没有…
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd"> <!--父项目的坐标.如果项目…
一.Scope定义 Scope用来声明容器中管理的对象所应该处的限定场景或者说对象的存活时间,即容器在对象进入相应的Scope之前,生产并装配这些对象,在该对象不再处于这些Scope之后,容器通常会销毁这些对象1.换句说,Scope是用来管理容器中对象的生存周期的,当对象在spring容器中组装生成之后,将其存入Scope内,该对象在容器中的获取及销毁操作都由Scope负责,容器只是在恰当的时间调用这些方法. 二.Scope种类 1.singleton:一个Spring IoC容器只包含一个该对…
需求: 将pom.xml 文件中的版本号读取到配置文件并打印到日志中. 第一步: 在pom.xml 中添加以下标签. 第二步: 将version 标签的值读取到配置文件中 这里使用 @@  而不是  ${}   是因为spring boot 无法识别配置文件中的 ${}  符号会导致报错. 第三步: 如果是在spring boot 默认配置文件中配置,那么就直接在项目中用 @Value 注解注入值即可. 如果是自定义的配置文件,那么就使用 @PropertySource("classpath:f…
jsp自定义标签的优势体现在于jsp页面上面减少了java代码. jsp自定义标签有三大部分组成,首先是类继承TagSupport,实现doStartTag方法. public int doStartTag() throws JspException { log.info("partsMgrService:" + partsMgrService); log.info("Log style: " + style); log.info("Log rowid:…
scope的分类 1.compile:默认值 他表示被依赖项目需要参与当前项目的编译,还有后续的测试,运行周期也参与其中,是一个比较强的依赖.打包的时候通常需要包含进去 2.test:依赖项目仅仅参与测试相关的工作,包括测试代码的编译和执行,不会被打包,例如:junit 3.runtime:表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与.与compile相比,跳过了编译而已.例如JDBC驱动,适用运行和测试阶段 4.provided:打包的时候可以不用包进去,别的设施会提供…
<input> 标签用于搜集用户信息. 根据不同的 type 属性值,输入字段拥有很多种形式.输入字段可以是文本字段.复选框.掩码后的文本控件.单选按钮.按钮等等. 在这里博主介绍6中type的input,分别是文本域.密码字段.单选按钮.复选按钮.提交按钮以及指定图片按钮 1:文本域 文本域通过<input type="text"> 标签来设定,当用户要在表单中键入字母.数字等内容时,就会用到文本域. First name: <input type=&q…
Exclusions maven的依赖(dependencies)有传递性,为了解决兼容性问题,就用exclusions来排除造成兼容性问题的依赖. 写法如下: 加入项目A依赖项目B,项目B依赖项目C,A中不想引用项目C,可以如下写: <project> <modelVersion>4.0.0</modelVersion> <groupId>sample.ProjectA</groupId> <artifactId>Project-A…
scope 是用来限制 dependency 的作用范围的,影响 maven 项目在各个生命周期时导入的 package 的状态,主要管理依赖的部署. scope 的作用范围: (1)compile:默认值,适用于所有阶段(表明该 jar 包在编译.运行以及测试中路径均可见),并且会随着项目一起发布. (2)test:只在测试时使用,用于编译和运行测试代码,不会随项目发布. (3)runtime:无需参与项目的编译,不过后期的测试和运行周期需要其参与,与 compile 相比,跳过了编译.如 J…
  scope的几个属性详解: 1.compile:默认值 他表示被依赖项目需要参与当前项目的编译,还有后续的测试,运行周期也参与其中,是一个比较强的依赖.打包的时候通常需要包含进去. 2.test:依赖项目仅仅参与测试相关的工作,包括测试代码的编译和执行,不会被打包,例如:junit. 3.runtime:表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与.与compile相比,跳过了编译而已.例如JDBC驱动,适用运行和测试阶段. 4.provided:打包的时候可以不用包…
compile:默认值,表示当前依赖包,要参与当前项目的编译,后续测试,运行时,打包provided:代表在编译和测试的时候用,运行,打包的时候不会打包进去test:表示当前依赖包只参与测试时的工作:比如Junitruntime:表示当前依赖包只参与运行周期,其他跳过了system:从参与度和provided一致,不过被依赖项不会从maven远程仓库下载,而是从本地的系统拿.需要systemPath属性来定义路径…
昨天在阿里云看到了一句话,"当你Learning和Trying之后,如果能尽量把Teaching也做好,会促进我们思考".共勉! 这是关于Maven的第三篇博客,这次我们深入了解pom.xml配置文件,它是Maven项目的基础文件,也是最为重要的文件. 一.对本项目的声明: 如上图所示,这段截取的代码是一个普通项目的配置的开始,是对本项目的声明,其中-- <modleVersion/>标签:指定了当前pom的版本. <groupId/>标签:定义了该项目属于哪个…
由于maven在工作中经常使用,但是平时要记的知识点有点多,偶尔回头来看一些东西难免忘记,特此整理一篇笔记,方便大家搜索查询,也方便自己以后查询! 后续碰见其他的标签也会进行更新! maven的pom文件中存在引入依赖.声明.继承:引入依赖的时候首先去本地仓库找,找不到再去配置的其他仓库找! 1.modelVersion <modelVersion>4.0.0</modelVersion><!--描述这个POM文件是遵从哪个版本的项目描述符.--> 2.parent &…
声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.了解SpringBoot的基本概念 2.具体内容 在之前所建立的 SpringBoot 项目只是根据官方文档实现的一个基础程序模型,但是这样的代码肯定不适合于实际的项目开发, 因为从实际的 Maven 项目来讲,应该要有统一的父 pom.xml 文件. 2.1.统一父 pom 管理 1. 首先建立一个 microboot 的 Maven 项目: <!--建立统一的父pom ,其他的子模块都统一用这个配置 --> <…
在Maven中依赖的域有:compile.provided.runtime.system.test.import 一.compile(默认) 当依赖的scope为compile的时候,那么当前这个依赖的包,会在编译的时候被加入进来,并且在打包(mvn package)的时候也会被加入进来.编译范围有效,在编译与打包时都会加入进去. 二.provided 当依赖的scope为provided的时候,在编译和测试的时候有效,在执行(mvn package)进行打包时不会加入.比如, 我们开发一个we…
1.dependency里面的scope dependency里面的classifier dependency里面的type dependency里面的systemPath dependency里面的optional: dependency里面的exclusions: 2.dependency里面的version maven的pom.xml有些依赖为什么可以不写版本号.因为他的 <parent> 父级依赖已经定义了版本,子项目自己的groupId和version可以从父项目继承. 3.repo…
测试环境 maven 3.3.9 想必大家在做SpringBoot应用的时候,都会有如下代码: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.3.3.RELEASE</version> </parent> 继承一个父模块,然后再…
Spring Boot介绍 Spring Boot是由Pivotal团队提供的新框架,其设计目的是简化Spring应用的搭建以及开发过程.其目标是: 为所有Spring开发提供一个从根本上更快,且方便上手的体验 开箱即用,摆脱原有的默认配置方式 提供大型项目常用的非功能性特征,例如:内嵌服务器,安全,指标度量,健康监测,外部化配置 无需xml配置和绝无代码生成 Spring Boot系统要求 Spring Boot 2.1.2.RELEASE 版本 要求Java7或者更高版本(推荐用jdk8).…
举例A依赖于B及C,而B又依赖于X.Y,而C依赖于X.M,则A除引B及C的依赖包下,还会引入X,Y,M的依赖包(一般情况下了,Maven可通过<scope>等若干种方式控制传递依赖).这里有一个需要特别注意的,即B和C同时依赖于X,假设B依赖于X的1.0版本,而C依赖于X的2.0版本,A究竟依赖于X的1.0还是2.0版本呢?这就看Classloader的加载顺序了,假设Classloader先加载X_1.0,而它就不会再加载X_2.0了,如果A恰恰希望使用X_2.0呢,血案就这样不期而遇了.…
在maven多模块项目中,为了保持模块间依赖的统一,常规做法是在parent model中,使用dependencyManagement预定义所有模块需要用到的dependency(依赖) <dependencyManagement> <dependencies> <!-- Feign是一种声明式.模板化的HTTP客户端:以HTTP接口的形式暴露自身服务 --> <dependency> <groupId>org.springframework.…
第一章:Maven概述 (1)Maven是一个项目构建工具,由apache提供,用Java开发的 (2)构建工具:Ant(蚂蚁),Maven(专家) (3)构建工具作用:帮助程序员进行项目的创建,目录的创建.代码的编译,执行,测试,打包... (4)传统构建的缺陷: a:项目之间的依赖不方便,只能通过导包的形式建立关联 b:不能实时更新代码 c:导包方式麻烦,需要自己下载jar进行导入 d:当导入的jar包比较多时,容易发生包的重复,相同包的不同版本,jar包之间版本兼容问题 (5)Maven当…
Java安全之Shiro 550反序列化漏洞分析 首发自安全客:Java安全之Shiro 550反序列化漏洞分析 0x00 前言 在近些时间基本都能在一些渗透或者是攻防演练中看到Shiro的身影,也是Shiro的该漏洞也是用的比较频繁的漏洞.本文对该Shiro550 反序列化漏洞进行一个分析,了解漏洞产生过程以及利用方式. 0x01 漏洞原理 Shiro 550 反序列化漏洞存在版本:shiro <1.2.4,产生原因是因为shiro接受了Cookie里面rememberMe的值,然后去进行Ba…
不断踩坑并解决问题是每个程序员进阶到资深的必要经历并以此获得满足感,而不断阅读开源项目源码和总结思想是每个架构师成长最佳途径.本篇拉开SpringCloud Alibaba最新版本实战和原理序幕,以工程实践的简单完整实战示例为主线,步步深入并可为实际项目中带来启发…