在gradle中导入apache速度会降低HttpServlet响应的级别



我有一个spring-boot项目,代码如下:

import org.springframework.web.context.request.NativeWebRequest;
import javax.servlet.http.HttpServletResponse
foo(NativeWebRequest req){
HttpServletResponse res = req.getNativeResponse(HttpServletResponse.class);
res.setCharacterEncoding("UTF-8");
}

一切都很好,直到我添加了速度相关性:

compile group: 'org.apache.velocity', name: 'velocity', version: '1.7'
compile group: 'org.apache.velocity', name: 'velocity-tools', version: '2.0'

现在我得到:
在Eclipse中:The method setCharacterEncoding(String) is undefined for the type HttpServletResponse
并且在gradle bootJar:中

.../SomeFile.java:12: error: cannot find symbol
res.setCharacterEncoding("UTF-8");
^
symbol:   method setCharacterEncoding(String)
location: variable res of type HttpServletResponse

因此,我认为导入HttpServlet响应的库的版本在某种程度上受到了这些依赖关系的影响。

我的春季启动插件是:id 'org.springframework.boot' version '2.3.2.RELEASE'

同一项目中的所有依赖项都是:

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
// https://mvnrepository.com/artifact/org.apache.velocity/velocity
compile group: 'org.apache.velocity', name: 'velocity', version: '1.7'
// https://mvnrepository.com/artifact/org.apache.velocity/velocity-tools
compile group: 'org.apache.velocity', name: 'velocity-tools', version: '2.0'
}

gradle dependencies中,我可以看到速度集javax.servlet:servlet-api:2.3,但如果没有速度依赖关系,javax.servlet根本不会出现在渐变依赖关系中,所以我不知道以前的版本是什么。

通过注释,我可以确定implementation 'org.springframework.boot:spring-boot-starter-web'提供了javax.servlet(如果速度不是依赖项的话(。(根据compileClasspathgradle dependencies2.3.2版和implementation(n)版(

我也尝试了无速度的gradle dependencyInsight --configuration compile --dependency javax.servlet:servlet-api,但得到了No dependencies matching given input were found in configuration 'compile'

我认为这些问题非常接近,但我仍然不确定如何在gradle中进行:
setCharacterEncoding问题
Apache Velocity+Servlet 3.0

用替换
compile group: 'org.apache.velocity', name: 'velocity-tools', version: '2.0'

compile('org.apache.velocity:velocity-tools:2.0') {
exclude group: 'javax.servlet', module: 'servlet-api'
}

为我工作。

最新更新