Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Apache Velocity+;Servlet 3.0_Java_Apache_Velocity_Servlet 3.0 - Fatal编程技术网

Java Apache Velocity+;Servlet 3.0

Java Apache Velocity+;Servlet 3.0,java,apache,velocity,servlet-3.0,Java,Apache,Velocity,Servlet 3.0,我正在从Servlet2.5升级到3.0,我正在使用ApacheVelocity进行模板化,在mvn依赖关系树之后,我看到Velocity工具依赖于ServletAPI:jar:2.3,有没有一种方法可以将Servlet3.0与ApacheVelocity一起使用 提前感谢Maven dependencies并不意味着我需要这个版本的库,但几乎我至少需要这个版本。这意味着,如果您在servlets库的3.0版本上声明了一个依赖项,则将使用该依赖项 servlets规范的3.0版本与2.5版本向后

我正在从Servlet2.5升级到3.0,我正在使用ApacheVelocity进行模板化,在mvn依赖关系树之后,我看到Velocity工具依赖于ServletAPI:jar:2.3,有没有一种方法可以将Servlet3.0与ApacheVelocity一起使用


提前感谢

Maven dependencies并不意味着我需要这个版本的库,但几乎我至少需要这个版本。这意味着,如果您在servlets库的3.0版本上声明了一个依赖项,则将使用该依赖项


servlets规范的3.0版本与2.5版本向后兼容,这意味着无论Velocity需要从servlets获得什么,都可以获得;我的Servlet3.0项目无法编译,因为ServletAPI2.3作为Velocity工具的依赖项位于Maven类路径上

解决方法是将Velocity依赖项声明为
运行时
,因此在编译时项目仍然使用Servlet3.0构建

<dependency>
   <groupId>org.apache.velocity</groupId>
   <artifactId>velocity-tools</artifactId>
   <version>2.0</version>
   <scope>runtime</scope>
</dependency>

org.apache.velocity
速度工具
2
运行时

servlet API是向后兼容的。如果velocity没有与Servlet3.0API一起工作,我会感到惊讶。我的意思是velocity继续使用版本2.3而不是3.0