java – 运行grunt和tomcat服务器的Web App(Spring,Angular,Grunt,Maven,Tomcat)

前端之家收集整理的这篇文章主要介绍了java – 运行grunt和tomcat服务器的Web App(Spring,Angular,Grunt,Maven,Tomcat)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
好的,所以我一直在阅读其他几个堆栈问题并尝试将它们拼凑在一起而没有太多运气.基本上我的方法是我目前有一个项目有多个子项目.我基本上有以下几点:
  1. root
  2. |----backend
  3. |----|----src
  4. |----|----|----main
  5. |----|----|----|----java (individual java files not shown)
  6. |----|----|----|----resources
  7. |----|----|----|----|----Meta-INF
  8. |----|----|----|----|----|----applicationContext.xml
  9. |----|----|----|----webapp
  10. |----|----|----|----|----WEB-INF
  11. |----|----|----|----|----|----web_servicesConfig.xml
  12. |----|----|----|----|----|----web.xml
  13. |----|----pom.xml
  14. |----deploy
  15. |----|----src
  16. |----|----|----main
  17. |----|----|----|----resources (properties files for tomcat)
  18. |----|----pom.xml
  19. |----frontend
  20. |----|----app
  21. |----|----|----angular files
  22. |----|----bower_components
  23. |----|----|----bower files
  24. |----|----bower.json
  25. |----|----Gruntfile.js
  26. |----|----pom.xml

好的希望在文件结构上足够清楚.我打算使用maven-grunt-plugin,所以我可以在前端运行我的grunt命令.前端基本上与角度产生的设置相同或者至少是目标.部署只是设置tomcat,后端保存Spring 4 restful services / api.

好的,这就是我很困惑并寻求帮助.我不知道如何让前端与后端正常工作.基本上我想知道是否有办法告诉maven以开发模式启动Tomcat和Grunt服务器,以便我可以使用它们的两个功能快速开发我的项目,然后将min文件拉入生产构建的战争中.我想我无法弄清楚如何让一切都很好地融合在一起.我查了一下这个问题,但是我仍然感到困惑:

How to deploy AngularJS app and Spring Restful API service on the same domain/server?

我希望任何链接到教程,以解决如何使用Maven与tomcat,spring,angularjs和grunt …还凉亭所以我可以使用它为我的前端包管理.我已经阅读了几个例子,并且已经看到很多关于如何在Java EE和jsp中使用spring的讨论.或者使用Gradle来做我想要的一些事情……但是我没有尝试过.

当然,如果这是一个糟糕的方法让我知道.基本上我想让我的子项目尽可能分开,同时仍允许开发人员从一个pom文件导入/运行.

解决方法

从你的问题我只挖了两个问题

>如何使用grunt / bower tomcat进行持续开发
>如何部署生产

1 – 持续发展

我选择的解决方案 – 因为你已经使用api来沟通客户端< - > server-是完全分开两个项目.

那是什么意思呢?
对我来说是拥有两个不同的存储库.一个用于客户端,一个用于服务器
这样你获得的好处很少:

>拆分项目的工作(前端/服务器端)
>易于维护
>如果您想支持“仅API”,例如,移动应用程序等.

但是 – 他们在开发过程中如何沟通?

这是一个很好的问题:
一种解决方案是在localhost上并行运行两个服务器,即mvn clean tomcat:run -P yourprofile; grunt服务器

但是 – 如果我尝试从不同端口从客户端访问服务器端,我将获得跨域?
你是对的.在这里你得到了grunt及其插件的帮助.抢一份grunt-connect-proxy的副本

这个插件有什么好处,它充当grunt服务器和tomcat服务器之间的中间件,所以你问grunt服务器的API,但实际上grunt要求tomcat服务器回答(当然在幕后)

2 – 部署用于生产

我想这是个人偏好问题.我发现war文件非常大,一次又一次上传(即使能够在你所有的tomcat应用程序之间共享lib).我想出的解决方案是通过git进行部署.

好的,但我有一个大的战争档案.我怎样才能做到这一点?

对我来说,我使用我在bash中编写的部署脚本.这就是它的作用:

>标记当前来源
>运行mvn clean package war:爆炸-P your-prod-profile(这也将运行测试和集成测试)
>使用上面的命令,您可以在一个地方获得所有已编译项目的文件,而不是一个大的war文件.
>将所有这些文件(和内部路径)复制到外部文件夹中(我使用另一个存储库通过git进行维护部署.所以基本上我有3个存储库.一个用于服务器源,一个用于客户端源,一个用于服务器二进制文件.)
>在执行4之前,请确保从中删除所有文件文件夹(除了.git之外)
> 4之后做“git add -A”
>“git commit -a -m’新生产版本X”
>您可以在之前和之后标记一些标记,以便在新生产中存在大错误的情况下轻松恢复最后一个代码
>在服务器上运行远程命令到.)停止服务器,b.)从二进制存储库中提取最后的更改,c.)再次运行服务器.
>对我来说,我所做的是tomcat应用程序与外部文件夹(二进制存储库)之间的符号链接

希望这会给你一些指示,

最好成绩,橡木

猜你在找的Java相关文章