关于maven依赖中的scopeprovided/scope使用
生活随笔
收集整理的這篇文章主要介紹了
关于maven依赖中的scopeprovided/scope使用
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
今天開(kāi)發(fā)web的時(shí)候,需要用到servlet-api,于是在pom.xml中添加依賴(lài)
<dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>3.0-alpha-1</version></dependency>通過(guò)插件啟動(dòng)tomcat的時(shí)候,報(bào)錯(cuò),里面有一段是這樣的:
Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/catalina/loader/WebappClassLoader) previously initiated loading for a different type with name "javax/servlet/ServletContext"at java.lang.ClassLoader.defineClass1(Native Method)at java.lang.ClassLoader.defineClass(ClassLoader.java:800)at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)at java.net.URLClassLoader.access$100(URLClassLoader.java:71)at java.net.URLClassLoader$1.run(URLClassLoader.java:361)at java.net.URLClassLoader$1.run(URLClassLoader.java:355)產(chǎn)生的原因是:tomcat中也有servlet-api包,這樣,發(fā)生了沖突
解決方法:添加<scope>provided</scope>,因?yàn)閜rovided表明該包只在編譯和測(cè)試的時(shí)候用,所以,當(dāng)啟動(dòng)tomcat的時(shí)候,就不會(huì)沖突了,完整依賴(lài)如下:
<dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>3.0-alpha-1</version><scope>provided</scope></dependency>總結(jié)
以上是生活随笔為你收集整理的关于maven依赖中的scopeprovided/scope使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: commons-lang包中我们常用的类
- 下一篇: Maven学习-使用Nexus搭建Mav