企业如何通过vue小程序开发满足高效运营与合规性需求
919
2023-05-12
maven依赖关系中的<scope>provided</scope>使用详解
关于maven依赖中的
scope的其他参数如下:
compile
默认的scope,表示 dependency 都可以在生命周期中使用。而且,这些dependencies 会传递到依赖的项目中。适用于所有阶段,会随着项目一起发布
provided
跟compile相似,但是表明了dependency 由JDK或者容器提供,例如Servlet AP和一些java EE APIs。这个scope 只能作用在编译和测试时,同时没有传递性。
runtime
表示dependency不作用在编译时,但会作用在运行和测试时,如JDBC驱动,适用运行和测试阶段。 test表示dependency作用在测试时,不作用在运行时。 只在测试时使用,用于编译和运行测试代码。不会随项目发布。 system跟provided 相似,但是在系统中要以外部JAR包的形式提供,maven不会在repository查找它
今天开发web的时候,需要用到servlet-api,于是在pom.xml中添加依赖
通过插件启动tomcat的时候,报错,里面有一段是这样的:
Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/http://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-.URLClassLoader.defineClass(URLClassLoader.java:449)
at java-.URLClassLoader.access$100(URLClassLoader.java:71)
at java-.URLClassLoader$1.run(URLClassLoader.java:361)
at java-.URLClassLoader$1.run(URLClassLoader.java:355)
产生的原因是:tomcat中也有servlet-api包,这样,发生了冲突
解决方法:添加
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~