解释 其实这个问题很简单. 对于scope=compile的情况(默认scope),也就是说这个项目在编译,测试,运行阶段都需要这个artifact(模块)对应的jar包在classpath中. 而对于scope=provided的情况,则可以认为这个provided是目标容器已经provide这个artifact.换句话说,它只影响到编译,测试阶段.在编译测试阶段,我们需要这个artifact对应的jar包在classpath中,而在运行阶段,假定目标的容器(比如我们这里的liferay容器)…
重点:这个项目打成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中,会包含我们被标…
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…
今天开发web的时候,需要用到servlet-api,于是在pom.xml中添加依赖 <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>3.0-alpha-1</version> </dependency> 通过插件启动tomcat的时候,报错,里面有一段是这样的: Caused…
在一个maven项目中,如果存在编译需要而发布不需要的jar包,可以用scope标签,值设为provided.如下: <dependency>            <groupId>javax.servlet.jsp</groupId>            <artifactId>jsp-api</artifactId>            <version>2.1</version>            <…
idea工具maven projects里面有9种生命周期,今天刚好遇到,顺便分享下自己的理解.生命周期是包含在一个项目构建中的一系列有序的阶段.最常用的两种打包方法:一:clean,package(如果报错,很可能就是jar依赖的问题)二:clean,install9种生命周期:clean,清理,在进行真正的构建之前进行一些清理工作,移除所有上一次构建生成的文件.执行该命令会删除项目路径下的target文件,但是不会删除本地的maven仓库已经生成的jar文件. validate,验证,验证工…
今天开发web的时候,需要用到servlet-api,于是在pom.xml中添加依赖 <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>3.0-alpha-1</version> </dependency> 通过插件启动tomcat的时候,报错,里面有一段是这样的: Caused…
1.枚举各个属性值的含义 compile,缺省值,适用于所有阶段,会打包进项目. provided,类似compile,期望JDK.容器或使用者会提供这个依赖. runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段. test,只在测试时使用,用于编译和运行测试代码.不会随项目发布. system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它. 2.其它类型的属性值都比较容易理解,这里重点比较一下compile和runtime之间…
一: 1.Maven中的依赖作用范围概述 Maven中使用 scope 来指定当前包的依赖范围和依赖的传递性.常见的可选值有:compile, provided, runtime, test, system 等.scope 主要是用在 pom.xml 文件中的依赖定义部分,例如: <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId…
解决办法: <dependency>     <groupId>javax.servlet</groupId>     <artifactId>javax.servlet-api</artifactId>     <version>3.0.1</version>     <scope>provided</scope> <!-- 这里 --></dependency><d…