我正在使用Spring Boot和Gradle来制造战争 .
war {
baseName = 'foo'
version = '0.1.0'
}
由于war任务具有版本号,因此生成的war名称为 foo-0.1.0.war
,因此当部署到Tomcat时,上下文路径为 http://localhost/foo-0.1.0/
我'd like to use the context path ' bar '省略版本号并使用不同的路径 .
http://localhost/bar
这可能是使用Spring注释吗?我已经尝试更改 @RequestMapping
但这只会将上下文更改为 http://localhost/foo-0.1.0/bar
以下答案here和here尝试将上下文xml片段添加到 <catalina_home>/conf/Catalina/localhost/
<Context docBase="/foo-0.1.0" path="/bar" reloadable="true"> </Context>
但是虽然Tomcat是取消部署/foo-0.1.0我得到错误:
WARNING: A docBase C:\tools\apache-tomcat-7.0.53\webapps\foo-0.1.0 inside the host appBase has been specified, and will be ignored.
我是否错误地配置了Context?
如果设置上下文是正确的解决方案,我如何将其添加到我的项目,因为 spring 启动似乎在编译应用程序时生成web-inf文件夹?
我已经尝试将 context.xml
添加到 /src/main/webapp/META-INF
,虽然它包含在战争中它不会改变上下文路径
1 回答
问题的根本原因是使用Manger GUI来部署应用程序,即使提供了上下文,似乎使用“WAR文件部署”'工具'也会使用war名称
使用Gradle Cargo plugin我已经能够根据需要使用
\src\main\resources
中的context.xml并使用build.gradle中的上下文来部署应用程序