正确发布grunt项目

时间:2014-07-11 14:22:10

标签: javascript maven gruntjs nexus maven-release-plugin

我使用Nexus来存储我的静态Web工件。

作为前任" Java开发人员"我曾经经常使用Maven release plugin将我构建的工件部署到Nexus。我想使用Grunt为我的Web项目构建找到一个等价物。

目前,我正在使用grunt-maven-tasks将工件部署到Nexus。问题是我无法找到一个等效的maven:发布,因为它使用Grunt在Java中完成。

现有的grunt-maven-task 发布命令只是修剪" -SNAPSHOT"部署到Nexus之前的部分内容。没有进行SCM交互(检查未提交的资源,标记到SCM,更改版本,提交等)。

我想向Nexus"发现一个真实的"版本。对于Grunt项目。我有什么解决方案?

1 个答案:

答案 0 :(得分:1)

根据这篇文章http://labs.bsb.com/2014/02/better-maven-releases-with-jenkins/,我最终决定在Jenkins中实施等效的发布工作流

我创建了一个 Jenkins自由式项目并使用 Release插件将配置版本构建添加到我的工作中。发布时考虑了两个版本参数release_versionnext_snapshot_version。我还使用 Scriptler插件

使用了一些自定义Groovy脚本

在成功构建标准后,发布步骤

  1. 执行shell脚本以安装JS包,使用grunt-maven-task部署到nexus。 grunt-maven-task正在碰到下一个快照版本(这里是次要版本),因此我将其显式重新定位到$RELEASE_VERSION以在标记之前向SVN提交当前版本的版本)

    npm install grunt maven:release:$RELEASE_VERSION:minor npm version $RELEASE_VERSION svn ci -m "Bump release version $RELEASE_VERSION for release tag" package.json

  2. 运行自定义Groovy脚本以将我的工作副本标记为SVN。此脚本使用svn命令行工具(此处未详述)。

  3. 执行shell脚本将package.json压缩到下一个SNAPSHOT版本:

    npm version $NEXT_SNAPSHOT_VERSION svn ci -m "Bump next snapshot version to $NEXT_SNAPSHOT_VERSION after release" package.json