在构建管道中的MVN之前运行Grunt任务?

时间:2015-09-17 02:57:27

标签: maven gruntjs ibm-cloud devops

这个问题非常特定于Bluemix DevOps。

我有一个Java后端应用程序,它有一个相当大的JavaScript前端。所以我创建了一个GRUNT任务来完成所需的工作:uglify,minify,CDNify等。我当前的设置是让Bluemix构建只运行mvn -B package并将Grunt任务预先作为我本地机器上的脚本运行:

    #!/bin/bash
    grunt build
    git add --all
    git commit
    git push origin master

但这排除了使用在线编辑器的任何编辑。所以我想让两个任务都由管道运行。我看到3个选项:

  1. git push触发的一个构建块中的两个任务作为单独的任务运行
  2. git push
  3. 触发的一个构建脚本中运行它们
  4. 运行2个管道步骤,第一个由git push触发,第二个由第一个完成
  5. 别的东西
  6. 我还没有尝试过(对我感到羞耻),只是想问一下之前是否有人这样做过(如果是的话 - 很酷,如果不是,我会在稍后发表我的发现)

1 个答案:

答案 0 :(得分:4)

解决了它。这就是我试过的:

  • 使用npm install修改构建和前缀中的脚本
    npm或mvn(取决于我选择的内容)未找到)
  • 在一个构建阶段添加2个作业,一个grunt一个maven
    (部署任务找不到war文件)
  • 使用2个管道阶段(见下图):Horray ---有效。

Two build steps required

由于mvntarget设置为默认目录,因此设置目录所需的构建步骤都没有,这是一个小陷阱,所以删除它。 Bower / Grunt的脚本是这样的:

 #!/bin/bash
 npm install
 grunt build 

maven任务的脚本:

#!/bin/bash
mvn -B package

就像一个魅力(只是注意不要添加你实际上不需要的npm模块,它会使构建速度相当慢)