今天开发web的时候,需要用到servlet-api,于是在pom.xml中添加依赖 <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>3.0-alpha-1</version> </dependency> 通过插件启动tomcat的时候,报错,里面有一段是这样的: Caused…
Maven依赖中的scope详解 项目中用了<scope>test</scope>在eclipse里面用maven install可以编译成功,到服务器上用命令执行报VM crash错误,原因是test代码提交上去了,但没有对应的junit包导致的 解决办法:1.服务器上编译的时候排除掉test代码.2.把<scope>test</scope>改成<scope>compile</scope> <dependency> &l…
https://www.jianshu.com/p/7145f01ac3ad Maven依赖中scope的含义 整理一下Maven中Scope的详细作用,都是抄的别人内容整理了一下.参考: https://blog.csdn.net/claram/article/details/77646263 https://blog.csdn.net/kimylrong/article/details/50353161 https://blog.csdn.net/mn960mn/article/detail…
举例如下: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> scope的值有以下几种可能,进行分情况讲解: 1.compile 默认就是compile,什么都不配置也就…
今天开发web的时候,需要用到servlet-api,于是在pom.xml中添加依赖 <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>3.0-alpha-1</version> </dependency> 通过插件启动tomcat的时候,报错,里面有一段是这样的: Caused…
在创建Maven项目时,需要在pom.xml 文件中添加相应的依赖,其中有一个scope标签,该标签是设置该依赖范围 (maven项目包含三种classpath{编译classpath,测试classpath.运行classpath})的,其可选配置:compile.test.provided.runtime.system和import. maven有以下几种依赖范围: compile:编译依赖范围,如果在依赖中没有配置该标签,则默认为该依赖范围.此依赖范围对 于编译.测试.运行三种classp…
scope的分类 compile 默认就是compile,什么都不配置也就是意味着compile.compile表示被依赖项目需要参与当前项目的编译,当然后续的测试,运行周期也参与其中,是一个比较强的依赖.打包的时候通常需要包含进去. test scope为test表示依赖项目仅仅参与测试相关的工作,包括测试代码的编译,执行.比较典型的如junit. runntime runntime表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与.与compile相比,跳过编译而已,说实话…
问题再现 上次这边朋友问我一个问题,就是他们在pom.xml中的dependency中,看到有一些是provided的情况,比如如下: <dependency> <groupId>com.liferay.portal</groupId> <artifactId>portal-impl</artifactId> <version>6.1.0</version> <scope>provided</scope&…
问题再现: 上次这边朋友问我一个问题,就是他们在pom.xml中的dependency中,看到有一些是<scope>provided</scope>的情况,比如如下: <dependency> <groupId>com.liferay.portal</groupId> <artifactId>portal-impl</artifactId> <version>6.1.0</version> <…
在一个maven项目中,如果存在编译需要而发布不需要的jar包,可以用scope标签,值设为provided.如下: <dependency>            <groupId>javax.servlet.jsp</groupId>            <artifactId>jsp-api</artifactId>            <version>2.1</version>            <…
<dependency> < groupId>javax.servlet</groupId> < artifactId>jsp-api</artifactId> < version>2.0</version> < scope>provided</scope> < /dependency> compile 默认的scope,表示  dependency 都可以在生命周期中使用.而且,这些d…
一.问题 在上一篇<SpringBoot项目启动不走内嵌容器>中发现,provided会影响子依赖. 标记为scope:provided的jar在编译和运行时有作用,表明了运行时dependency 由JDK或者容器提供 那么问题来了:有个项目,依赖了jar包A,然后A又依赖B,B又依赖C,C又依赖D,现在给A加了scope:provided,那么运行时的B\C\D也是由JDK或者容器提供吗? 二.实验分析 新建个测试项目 用spring-boot-starter-web做实验 <dep…
maven常用的scope有compile,provided,runtime,test. complie是默认值,表示在build,test,runtime阶段的classpath下都有依赖关系.test表示只在test阶段有依赖关系,例如junitprovided表示在build,test阶段都有依赖,在runtime时并不输出依赖关系而是由容器提供,例如web war包都不包括servlet-api.jar,而是由tomcat等容器来提供<dependency> <groupId&g…
重点:这个项目打成war包时,scope=provided的jar包,不会出现在WEB-INFO/lib目录下,而scope=compile的jar包,会放到WEB-INFO/lib目录 scope=compile(默认) ​ 对于scope=compile的情况(默认scope),也就是说这个项目在编译,测试,运行阶段都需要这个jar包在classpath中. ​ 当我们用maven install生成最终的构件包ProjectABC.war后,在其下的WEB-INF/lib中,会包含我们被标…
spring boot 项目是自带tomcat 的,但是我们有时候是需要把项目打包成war 然后放到独立的tomcat中运行的,这个时候我们就需要将它自带的tomcat给排除开,这时候我们就可以使用<scope>provided</scope>来实现 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomc…
版本冲突的解决方案 [1]调节原则 [1]路径最短者优先原则 [2]路径相同时,先声明者优先原则 [2]排除原则:用于排除某项依赖的依赖jar包 <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <exclusions> <exclusion&g…
1.最近整合了公司的一个项目A,而A又依赖项目B,项目B中pom.xml中有一个依赖的<scope>provided</scope>,查了一下,原来provided属性,jar包 只能作用在编译和测试时,同时没有传递性.所以虽然B项目引入了这个jar包,但是因为没有传递性,项目A还需要再重新引一遍.另外如果不写<scope>,那么值默认为compile,表示 dependency 都可以在生命周期中使用.而且,这些dependencies 会传递到依赖的项目中.适用于所…
通常情况下,我们都比较喜欢使用maven进行项目管理,要加个依赖包也非常简单,不需要到处去下载jar包,当然除了maven之外,也还有一些非常不错的工具.在使用maven进行项目依赖管理的时候,有时候会出现一种情况,多个不同的开源组件都依赖了另外一个组件,但是这个组件的版本却不一样,在maven依赖中就会看到两个版本不同的jar,通常我们可以根据实际情况排除其中一个,当然前提是这个版本没有太大的差异,兼容.老规矩,直接了当说怎么做吧: 1.手工添加配置:在dependency标签里使用子标签ex…
1.何为依赖? 比如你是个男的,你要生孩子,呸呸呸...男的怎么生孩子,所以你得依赖你老婆,不过也不一定咯,你也可以依赖其她妹子. 我们在平时的项目开发中也是同理,你需要依赖一些东西才能实现相应的功能,但相应的功能或许也可以依赖其它的东西实现,比如数据库操作吧,你可以依赖hibernate,但你也可以通过mybatis来做. 这就是所谓的依赖关系咯. 以前我们需要手动的去找hibernate或者mybatis的jar包,系统抛异常我们还不知哪里报错,通过琢磨才明白没有引入相应的jar包,然后就去…
pom英文全称: project object model 1.概述 pom.xml文件描述了maven项目的基本信息,比如groupId,artifactId,version等.也可以对maven项目的远程仓库,打包形式,资源依赖关系等进行配置.一个最简单的pom.xml文件至少需要包含四个元素:modelVersion, groupId, artiffactId和version. 在一个pom文件中,如没有显式声明parent标签,则表明该项目默认继承一个原始的pom.xml文件(见参考资料…
1.什么是依赖范围? maven 项目不同的阶段引入到classpath中的依赖是不同的,例如,编译时,maven 会将与编译相关的依赖引入classpath中,测试时,maven会将测试相关的的依赖引入到classpath中,运行时,maven会将与运行相关的依赖引入classpath中,而依赖范围就是用来控制依赖于这三种classpath的关系. 2.依赖范围在pom.xml中如何体现? pom文件如下配置: <dependency>    <groupId>junit<…
原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79545022 1.何为依赖? 比如你是个男的,你要生孩子,呸呸呸…男的怎么生孩子,所以你得依赖你老婆,不过也不一定咯,你也可以依赖其她妹子. 我们在平时的项目开发中也是同理,你需要依赖一些东西才能实现相应的功能,但相应的功能或许也可以依赖其它的东西实现,比如数据库操作吧,你可以依赖hibernate,但你也可以通过mybatis来做. 这就是所谓的依赖关系咯. 以前我们需要手动…
一.maven依赖范围: classpath 分为三种:编译classpath , 测试classpath , 运行classpath Scope 选项如下: Compile:编译依赖范围.默认就是compile.在编译,测试,运行都有效: Test:测试依赖范围.仅测试有效: 例如JUnit: Provided:已提供依赖范围.编译,测试有效,运行时候无效.例如servlet-api. System:系统依赖范围.(了解即可)使用system 范围的依赖必须通过sytemPath 指定依赖文件…
事前准备:如果是eclipse的话,需要在官网下载jar文件,放到eclipse根目录下,eclipse.ini的最后追加 -Xbootclasspath/a:lombok.jar -javaagent:lombok.jar 如果是IDEA的话,需要在Setting > Plugins > Browse repositories... 下载lombok插件. 1.在pom.xml中追加 <dependency> <groupId>org.projectlombok<…
原文链接:https://blog.csdn.net/jianfpeng241241/article/details/52654352 1  在Myeclipse中准备两个maven demo. , 在 maven02中引入maven01 2 maven01 情况 Factory.java   package learning;       public class Factory {   public static String createMessage(){   String messag…
<properties> <spring.version>4.1.6.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${…
<dependencies> <!-- spring-boot核心 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 测试 --> <dependency> <groupId&…
本系列代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford 我们先来回顾下 maven 依赖中一个重要原则:最短路径原则.这在之后我们的使用中会经常用到. 举一个例子,假设我们以 spring-boot-parent 作为 parent: <parent> <groupId>org.springframework.boot</groupId> <…
  目前<scope>可以使用5个值: (1) compile (编译) compile是默认的范围:如果没有提供一个范围,那该依赖的范围就是编译范围.编译范围依赖在所有的classpath 中可用,同时它们也会被打包. (2) provided (已提供) 类似compile,期望JDK.容器或使用者会提供这个依赖.如servlet.jar.provided 依赖只有在当JDK 或者一个容器已提供该依赖之后才使用.例如, 如果你开发了一个web 应用,你可能在编译classpath 中需要可…
原文:https://blog.csdn.net/lisongjia123/article/details/56299006 <scope>的分类一.complie编译域,这个是Maven中scope的默认值,我们平时不写scpoe配置时默认就是使用这个值.compile表示被依赖项目需要同当前项目编译时一起进行编译,项目测试期以及本项目运行时期同样生效,打包的时候需要包含进去. 二.test测试域,表示被依赖的项目仅在项目进行测试的时候生效,一般将日志等依赖包(如:logback.Junit…