繁体   English   中英

Java,gulp和maven文件夹结构

[英]Java, gulp and maven folder structure

我有一个使用Maven标准目录布局的Java Web项目:java文件进入java (实际上是: /src/main/java ),资源进入resources ,web内容进入webapp

然后我们想通过添加bower,sass,gulp等来改进我们的web层。我们的gulp构建编译scss,最小化javascripts,优化图像等,一切你期望的。 但是这引入了1)另一个构建工具,gulp和2)gulp生成的文件。

问题是如何组织这样的项目? 一种方法可能是:

(A)gulp构建到webapp文件夹中

在此解决方案中,所有javascript,images,scss文件都存储在/src/main/assets ,并构建到/src/main/webapp 源和gulp生成的文件都被提交给git。 gradle构建独立于gulp,对于没有安装gulp的用户来说是可以的 - 比如那些只需要在后端工作的用户。 此外,CI服务器不依赖于gulp的东西。

(B)在构建期间使用gradle从gradle

在这个解决方案中,gulp是从gradle调用的。 Gradle因此构建了一切。 每当你想尝试某些东西时,你必须使用gradle。 此外,每个开发人员都需要安装gulp,对于使用Windows的开发人员来说可能是个问题(正如我所知)。 CI服务器也应该知道如何运行gulp。

我的团队在这两个选项之间徘徊。 有没有人有这些解决方案的任何工作经验?

我目前正在使用Java + Grunt + Maven。 我发现有两种方法可以用你的后端包装你的前端,这同样适用于Gulp。

最后,它取决于您的项目/团队的最佳选择。 根据我的经验,我通常在与他人合作时使用选项B,因为脱钩很容易值得其他问题。 当我在做我自己的项目时,我总是选择A,因为它更容易启动一个网络服务器并运行更接近DEV / PROD的本地环境。

A) 将您的前端放入webapp文件夹 (例如https://github.com/kdubb1337/maven-grunt-webapp

优点 - 您可以在一个地方启动后端并进行开发,即使没有OAUTH,也可以轻松使用Spring安全性。 当两个Web服务器通常捆绑到其他环境中的一个端口时,在本地环境中使用两个Web服务器的问题较少。

B) 将您的前端保存在不同的文件夹中 ,或者甚至放在您克隆到后端repo的根文件夹中的不同仓库中。 (例如https://github.com/kdubb1337/maven-grunt )查看'yo'文件夹

优点 - 梦幻般的解耦使得前端开发人员可以在不必在本地安装Java或担心重新编译后端的情况下生活愉快。 如果您希望Travis(或您最喜欢的CI应用程序)在后端和前端进行单元测试,那么效果很好。

编辑我发现这个很棒的插件你可以用maven / gradle构建前端https://github.com/eirslett/frontend-maven-plugin 看起来像是要走的路,将重建我的初学者项目与这个家伙为grunt和gulp

目前最好的做法是将您的前端构建视为一个单独的项目,并将其放在自己的Maven或Gradle模块中。 让您的Java构建系统调用JavaScript工具(例如,使用maven-exec-plugin )并将输出保存到targetbuild的相应目录中。 将结果捆绑在jar中并提供类路径。

如果您正在使用Bower,则只需要在CI服务器上安装基本节点,并且您的Java构建可以从那里调用必要的构建过程,并根据需要获取JS包。 不要忘记(1)使用--save和(2)从源代码控制中排除JS模块目录。

此外,我建议查看RaveJS ,它管理您的JavaScript构建,并使您不必在开发期间配置观察者等。

我推荐的最佳实践是使用com.github.eirslett.frontend-maven-plugin(或maven grunt插件)从mvn调用grunt / gulp构建(在进程资源目标中)。 当CI构建时,它全部集成,甚至npm等都可以安装在mvn的目标中,因此您无需为npm配置CI服务器。

当开发人员构建时,大多数情况下仍然只使用一个maven命令。 对于JS / CSS / HTML开发人员,在mvn clean install之后,他们可以在后台运行grunt / gulp“watch”,以便在浏览器中立即反映他们的JS更改,而不会产生任何maven开销(只是邪恶的快速gulp / grunt任务) 。

  1. 在默认的Tomcat webapp目录上部署UI组件。
  2. 在“wtpwebapps”(用于通过eclipse上传war的默认目录)目录上部署类文件。

设置Eclipse

  1. 转到服务器选项卡,打开tomcat的属性
  2. 确保,位置应该是[工作区元数据]
  3. 然后双击tomcat打开Tomcat概述。
  4. 将服务器位置设置为“使用tomcat位置”。

Grunt / Gulp设置

  1. 使用复制任务将构建UI文件复制到<tomcat installation directory>/webapps/<contextRoot>/

https://pub.scotch.io/@ankur841/eclipse-tomcat-deployment-with-gruntgulp-build

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM