java gxt eclipse_ecplise 下将spring boot 项目部署至tomcat运行

开始认为这个问题比较少见,不过后面才发现其实是两个很细微的问题导致的不能直接添加到tomcat中。

问题描述: 直接创建的spring boot 项目在ecplise navigator 视图下可以看到项目目录结构如下图:

310ad08d9862c87a8ca3ff64b738e1c2.png

这时候哪怕在pom.xml中设置了war 去掉内嵌tomcat,再将启动器修改为SpringBootServletInitializer但也只是获得了项目的war包,虽说可以在tomcat中使用,但如果想直接在eclipse中 部署到tomcat中进行调试系统的话,还是不行。可以在tomcat 上add and remove中发现没有springboot 项目。 这个原因是因为ecplise直接创建的springboot 项目并不是一个web项目。

75cee389136e410e814c8f9d2c6057a1.png

24f5c586e7992ba00a87e1c7e40e2bf9.png

解决方案: 第1步.项目上右击 properties -> project facets 然后配置:Dynamic Web Module 和Java 将项目转变为javaweb项目。注意要去掉Cloud Foundry Standalone Application

1ec9f60f46a5432c534507a029357429.png

然后就可以在tomcat 中看到该项目了,但还没完。

第2: 完成第一步之后,项目结构变成了:

39fc361b8a2e49d91b1cdd9e4ff34691.png

可以看得出自动在.settings下为我们新增了许多文件,其中最重要的便是org.eclipse.wst.common.component,这个文件是ecplise控制项目资源的路径。

将配置修改为:

其中 WebContent 是对应项目中被自动新增的WebContent目录,其对应为tomcat中webapp项目的根目录。可以按照需要进行修改。需要注意的是要在其下添加META-INF、MANIFEST.MF 和WEB-INF 及web.xml

以上配置最主要的是将target/ProjectName/WEB-INF/lib中的jar lib 输出到WEB-INF/lib。主要是由于自动配置中,没有指明项目的lib输出路径。而这个路径是由pom.xml文件中的build节指定:

${project.name}

${project.basedir}\target\${project.name}\WEB-INF\classes

org.springframework.boot

spring-boot-maven-plugin

org.apache.maven.plugins

maven-compiler-plugin

1.8

1.8

true

UTF-8

${project.basedir}\src\main\webapp\WEB-INF\lib

最后,打开我们的.classpath修改配置为:

以上配置主要是为设置classes的目录。起到热更新的效果。

这种将spring boot 项目迁移为ecplise + tomcat 运行方式特不雅观,但也将就能用。希望后面能找到相对优雅的迁移方案。

如果存在WebContent下的资源需要打包到tomcat,可以参考另一篇博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值