voi*_*oid 97 build-automation build maven angularjs gruntjs
我们正在使用AngularJS进行Web应用程序,我们喜欢使用Bower进行依赖关系管理和Grunt构建,运行测试等的想法.(Yeoman)
服务器是用Java完成的,所以当然我们希望用简单的mvn install构建一切(Web应用程序+服务器)
那你采取什么方法,为什么?
1)将它们视为两种不同的应用,实际上它们是.因此可以使用不同的构建方法/工具.
2)忘掉Grunt Bower,使用Maven插件构建,运行测试,管理Web应用程序的依赖关系.如果是这样的话,那是哪一个?
3)使用Maven exec插件调用Grunt构建前端webapp.我认为这更像是一个黑客而不是一个解决方案.
4)其他.
更容易与Jenkins集成的方法是一个加分.
提前致谢!
Bae*_*aer 73
在使用Java工具包中的每个资产管道工具一段时间后,我得出了一些结论:
有一些工具,但最受欢迎的是JAWR和Wro4J.这两个问题的最大问题在于它们大多是基于Rhino的(WRO4J现在有一些Node支持),而Rhino比基于Node的工具慢得多.您还必须考虑JavaScript工具正在快速成熟,因此您应该寻找可以快速移动的工具.
WRO4J - 支持很棒,Maven和Eclipse集成非常棒,插件列表很广泛,框架足够灵活,有了一些弯头,你可以根据需要编写插件.如果您只局限于基于Java的资产管道,那么这肯定是要走的路.Wro4j的问题在于它相对于基于Node的工具来说很慢(即使它启动了Node进程).
为了给包含LESS的25个资产包编译和连接一些真实世界的数字,CSS CoffeeScript和JavaScript在使用Rhino时需要大约35秒,在使用16G RAM的2013 iMac上使用Wro4j的Node支持需要大约15秒.在我糟糕的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>
Run Code Online (Sandbox Code Playgroud)
Eir*_*erg 13
Then there's also the frontend-maven-plugin: /sf/answers/1372054421/ It downloads Node and NPM for you (locally to your project), downloads Grunt via that NPM (run by that Node) and then runs Grunt (via that Node). It's self-bootstrapping, and you don't need Node installed on the machine to build the project. Just one command; mvn install.
Jul*_*ois 13
你可能想要查看http://jhipster.github.io/:它是一个Yeoman生成器,它生成一个Maven,Grunt和Bower一起工作的应用程序.
这有点像你的第三个选项,但一切都是为你配置的,这并不容易.它还为您生成基本的AngularJS和Java REST服务.
| 归档时间: |
|
| 查看次数: |
33990 次 |
| 最近记录: |