我使用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项目。我有什么解决方案?
答案 0 :(得分:1)
根据这篇文章http://labs.bsb.com/2014/02/better-maven-releases-with-jenkins/,我最终决定在Jenkins中实施等效的发布工作流 。
我创建了一个 Jenkins自由式项目并使用 Release插件将配置版本构建添加到我的工作中。发布时考虑了两个版本参数release_version
和next_snapshot_version
。我还使用 Scriptler插件。
在成功构建标准后,发布步骤。
执行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
运行自定义Groovy脚本以将我的工作副本标记为SVN。此脚本使用svn
命令行工具(此处未详述)。
执行shell脚本将package.json压缩到下一个SNAPSHOT版本:
npm version $NEXT_SNAPSHOT_VERSION
svn ci -m "Bump next snapshot version to $NEXT_SNAPSHOT_VERSION after release" package.json