是否可以从maven编译grunt项目?

gfo*_*ier 41 java maven node.js gruntjs

我正在尝试从maven内执行grunt任务,而无需安装Node.js或任何东西.这是因为我不想让Jenkins打包我的工件,我无法在那台机器上安装Node.js.

我知道使用npm和一些命令来实现它很容易,但我也认为应该很容易与maven集成,问题是我不知道从哪里开始,因为我是npm的新手.

blo*_*ong 29

是的,使用frontend-maven-plugin,您可以通过Maven编译Grunt项目(通过NodeJS邮件列表找到).

正如文档所指出的,该插件具有以下功能:

  • 让你的前端和后端版本尽可能分开,通过减少它们之间的交互量到最低限度; 仅使用1个插件.
  • 让您在构建过程中使用Node.js及其库,而无需为构建系统全局安装Node/NPM
  • 让您确保在每个构建环境中运行的Node和NPM的版本是相同的

我已经完成了代码并且它非常简单.谢天谢地,有人终于把它放在了一起; 这是一个优雅的解决方案.存储库包含一个使用常规Gruntfile.js来调用jshint分析的示例.

  • 另一种选择是.gitignore"node"文件夹(可执行文件最终结束),因此每个架构都有自己的. (2认同)

nwi*_*ler 15

更新2014-09-19:这不再是最准确的答案 - 请看下面的一些其他答案.当我回答这个问题时,它是准确的,但从那以后,这个领域似乎取得了很大的进展.

我怕你运气不好.Grunt是使用节点构建的,需要使用npm进行安装.如果您不想使用npm,则可以从另一台计算机复制现有的Grunt安装,但仍会grunt在构建服务器上使用可执行文件及其所有依赖项.

除此之外,许多Grunt任务都是作为Node.js模块实现的,您也必须安装它们.同样,您可以从另一台服务器复制它们,在那里您已经完成了Node.js/Grunt安装,但是在某一点上,您必须这样做.

要从Maven运行Grunt,最好的办法是使用Maven exec插件,然后从那里执行grunt可执行文件.

作为替代方案,有几个Maven插件允许您以基于Java的方式执行类似于Grunt的操作.它们需要与Grunt不兼容的其他配置,因此YMMV.我过去使用过的一个是http://code.google.com/p/wro4j/,它附带了一个Maven插件:http://code.google.com/p/wro4j/wiki/ MavenPlugin

您无法在构建服务器上安装Node.js的任何特定原因?


pbe*_*ier 11

你可以使用grunt-maven-plugin.它允许您轻松地将Grunt任务集成到Maven构建过程中.没有肮脏的黑客.

这是我在当前项目中使用的,它的工作非常完美.


gfo*_*ier 10

最后我最终得到了这个(足够接近,但没有解决问题):

<plugin>
<groupId>org.mule.tools.javascript</groupId>
<artifactId>npm-maven-plugin</artifactId>
<version>1.0</version>
<executions>
    <execution>
        <phase>generate-resources</phase>
            <goals>
                <goal>fetch-modules</goal>
            </goals>
            <configuration>
                <packages>
                    <package>grunt-cli:0.1.6</package>
                </packages>
            </configuration>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

在本地安装grunt-cli,但是如果我没有安装node.js那就没用了.虽然我尝试在本地安装node.js,但是需要安装python,g ++和make.所以我将使用KISS解决方案:在构建服务器中安装grunt.

参考文献:
https ://github.com/mulesoft/npm-maven-plugin
https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
https://github.com/ mcheely/requirejs-行家-插件


Er *_*pra 6

你可能想要查看http://jhipster.github.io/:它是一个Yeoman生成器,它生成一个Maven,Grunt和Bower一起工作的应用程序.

这有点像你的第三个选项,但一切都是为你配置的,这并不容易.它还为您生成基本的AngularJS和Java REST服务