[英]Creating a src/main/java folder structure in Eclipse without 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生成的文件。
问题是如何组织这样的项目? 一种方法可能是:
在此解决方案中,所有javascript,images,scss文件都存储在/src/main/assets
,并构建到/src/main/webapp
。 源和gulp生成的文件都被提交给git。 gradle构建独立于gulp,对于没有安装gulp的用户来说是可以的 - 比如那些只需要在后端工作的用户。 此外,CI服务器不依赖于gulp的东西。
在这个解决方案中,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
)并将输出保存到target
或build
的相应目录中。 将结果捆绑在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任务) 。
<tomcat installation directory>/webapps/<contextRoot>/
https://pub.scotch.io/@ankur841/eclipse-tomcat-deployment-with-gruntgulp-build
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.