JavaScriptWeb应用程序和Java服务器,在Maven中构建全部还是使用Grunt作为web应用程序?
我们正在使用AngularJS开发一个web应用程序,我们喜欢使用Bower进行依赖关系管理,使用Grunt进行构建、运行测试等 服务器是使用Maven用Java完成的,因此我们当然希望使用一个简单的JavaScriptWeb应用程序和Java服务器,在Maven中构建全部还是使用Grunt作为web应用程序?,maven,build,angularjs,build-automation,gruntjs,Maven,Build,Angularjs,Build Automation,Gruntjs,我们正在使用AngularJS开发一个web应用程序,我们喜欢使用Bower进行依赖关系管理,使用Grunt进行构建、运行测试等 服务器是使用Maven用Java完成的,因此我们当然希望使用一个简单的mvn安装构建一切(web应用程序+服务器) 那么你采取了什么方法,为什么 1) 将它们视为两个不同的应用程序,实际上它们是。因此,使用不同的建筑方法/工具是可以接受的 2) 忘记Grunt Bower,使用Maven插件为web应用程序构建、运行测试和管理依赖关系。如果是这样的话,是哪一种 3)
mvn安装
构建一切(web应用程序+服务器)
那么你采取了什么方法,为什么
1) 将它们视为两个不同的应用程序,实际上它们是。因此,使用不同的建筑方法/工具是可以接受的
2) 忘记Grunt Bower,使用Maven插件为web应用程序构建、运行测试和管理依赖关系。如果是这样的话,是哪一种
3) 使用Maven exec插件调用Grunt来构建前端webapp。我认为这更多的是一种黑客手段,而不是解决方案
4) 其他的
更容易与Jenkins集成的方法优先
提前谢谢 在花了几个小时研究这个问题之后,我可以这样说: maven和grunt打得不好,但可以强制执行 这是
我希望这会有所帮助:)在使用Java工具包中的每个资产管道工具一段时间后,我得出了一些结论: 基于Java的工具 有很多工具,但最流行的是JAWR和Wro4J。这两个工具最大的问题是它们大部分都是基于节点的(WRO4J现在有一些节点支持),而Rhino与基于节点的工具相比速度较慢。您还必须考虑JavaScript工具正在迅速成熟,因此您应该寻找能够快速移动的工具。
- -支持非常好,Maven和Eclipse集成非常好插件列表非常广泛,框架非常灵活,只要稍加润色,您就可以根据需要编写插件。如果您仅限于基于Java的资产管道,那么这无疑是一条必经之路。Wro4j的问题是相对于基于节点的工具,它的速度很慢(即使它启动了节点进程)。
为了给出一些真实世界的数字,编译和连接25个包含更少内容的资产包,CSS CoffeeScript和JavaScript在使用Rhino时需要约35秒,在2013 iMac上使用Wro4j的节点支持时需要约15秒,该iMac具有16G的RAM。在我小巧的MacBook Air上使用+节点大约需要2秒 - -集成和功能列表非常好,但文档并不好,编写自己的插件可能有点棘手。当我最初写这篇文章的时候,JAWR正处于4年的中断期,但现在回到了2014年初的积极发展。如果您选择调查Java工具,这是值得调查的
- -很简单,有一个奇妙的插件生态系统,社区规模庞大。如果你需要做一些事情,你可以打赌有一个插件,甚至可能是grunt的创建者编写的插件。Grunt的主要批评是它是配置驱动的,这使得设置非常简单,但不是“节点方式”。值得一提的是Grunt任务不容易组合,因此对于复杂的JavaScript构建管道,Grunt可能并不理想
- -Gulp是Grunt快速发展的替代品。默认情况下,它是并发的,并使用流避免对文件系统的临时写入,这会大大加快构建速度。Gulp非常惯用,强调代码>配置,虽然这给了你很多力量,但对于那些不具备JavaScript核心能力的团队来说,它并不理想
将其集成到Maven项目中非常容易,而且您有很多选择。您可以使用Maven,您可以运行一个并从Maven调用它,或者最棒的是,您可以使用。
下面是使用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>
org.codehaus.mojo
execmaven插件
1.2.1
准备包装
执行官
咕哝
对于仍在寻找有关此主题的更多信息的任何人,Yeoman的一位创作者有一篇好文章(在最初提出此问题几个月后撰写),对原始答案进行了更详细的扩展:
只要一个命令;mvn安装。您可能需要签出:这是一个Yeoman生成器,它生成一个应用程序,Maven、Grunt和Bower一起工作
这有点像您的第三个选项,但一切都是为您配置的,这并不容易。它还为您生成了基本的AngularJS和Java REST服务。感谢您的回答,这很有帮助,是的,但我将根据@Baer answer进行尝试。参考要点如下:谢谢您的详细回答。我想我会选择基于节点的工具选项。刚到格伦特,我喜欢迄今为止我所看到的一切,如果我能拥有两个世界中最好的一个,那就太好了。我不知道WRO4J和JAWR的存在。再次感谢。wro4j集成了less4j处理器,该处理器是less.js基于java的实现,其性能与node.js本机处理器相当。wro4j与node.js相比速度不快的原因主要是因为每次执行都需要磁盘IO操作。这只有在基于node.js的流程中才能得到改进