我们正在使用AngularJS做一个Web应用程序,我们喜欢将Bower用于依赖关系管理,将Grunt用于构建,运行测试等的想法。(Yeoman)
服务器是使用Maven使用Java完成的,因此我们当然希望通过简单的mvn install
构建一切(Web应用程序+服务器)
那么,您采用什么方法,为什么呢?
1)将它们视为两个不同的应用程序,实际上它们是。因此,可以使用其他构建方法/工具。
2)忘记Grunt Bower,使用Maven插件来构建,运行测试,管理Web应用程序的依赖项。如果是这样,那是什么?
3)使用Maven exec插件调用Grunt来构建前端Webapp。我将其更多地视为黑客而非解决方案。
4)其他。
易于与Jenkins集成的方法是一个加号。
提前致谢!
在使用Java工具箱中的几乎所有资产管道工具一段时间后,我得出了一些结论:
有一些工具,但是最受欢迎的是JAWR和Wro4J。这两个最大的问题是它们主要基于Rhino(WRO4J现在具有一些Node支持),并且与基于Node的工具相比,Rhino的运行速度很慢。您还必须考虑到JavaScript工具正在迅速成熟,因此您应该寻找可以快速移动的工具。
WRO4J-支持非常棒,Maven和Eclipse集成非常棒,插件列表非常广泛,并且框架足够灵活,您可以使用一些弯头的润滑脂来编写所需的插件。如果您局限于基于Java的资产管道,那么这肯定是可行的方法。Wro4j的问题在于,相对于基于Node的工具而言,它运行缓慢(即使启动了Node进程)。
要给出一些真实世界的数字,请在使用Rhino的2013 iMac(具有16G RAM)上使用Rhino时,将约25s的资产捆绑在一起并包含LESS,CSS CoffeeScript和JavaScript大约需要35s,而使用Wro4j的Node支持则需要大约15s。在微弱的MacBook Air上使用Grunt + Node大约需要2秒钟。
JAWR-集成和功能列表都不错,但是文档并不出色,编写自己的插件可能有些棘手。当我最初写这篇文章时,JAWR处于4年的中断之中,但是从2014年1月起,它现在正处于活跃的开发中。如果您选择研究Java Tools,这是值得研究的。
Grunt-很简单,拥有一个出色的插件生态系统,并且社区庞大。如果您需要做某事,您可以打赌,那里有一个插件-可能甚至是由grunt的创造者编写的插件。对Grunt的主要批评是它是配置驱动的,这使得设置非常容易,而不是“节点方式”。还值得一提的是,Grunt任务不容易组合,因此对于复杂的JavaScript构建管道,Grunt可能不是理想的选择。
Gulp -Gulp是Grunt的快速增长的替代品。默认情况下,它是并发的,并使用流来避免临时写入文件系统,这可以大大加快构建速度。Gulp非常习惯用法,并且着重于代码>配置,这虽然为您提供了很多功能,但对于在JavaScript中没有核心能力的团队而言,这并不是理想的选择。
基于JavaScript的工具唯一的潜在障碍是,您必须在需要进行编译的任何计算机上安装Node,npm和grunt-cli / gulp。如果您无权访问CI机器或未使用基于工件的部署,那么这可能会很难。
将其集成到您的Maven项目中非常容易,并且您有很多选择。您可以使用Maven ant-run插件,可以运行ant exec任务并从Maven调用它,或者最好是仅使用maven exec任务。
下面的代码使用exec插件将其集成到Maven生命周期中,如果这对任何人都有用的话。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>grunt</executable>
</configuration>
</plugin>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句