node package manager

gulp-maven-deploy

gulp-maven-deploy

A Gulp wrapper for the maven-deploy module. Enables you to have projects which are built with Gulp, but deploys to Maven repositories.

Build Status Dependency Status devDependency Status

NPM

All the samples below require a basic understanding of Gulp and Maven. Please look at the documentation for those projects for details. This readme refers to 1.x versions. If you are still using the 0.x versions, have a look into the 0.x support branch.

Installing

$ npm install gulp-maven-deploy --save-dev

Sample usage in a gulpfile.js

Below are two configuration samples:

Configuring a task for deploying to a Maven proxy

var gulp = require('gulp'),
    maven = require('gulp-maven-deploy');
    zip = require('gulp-zip');
 
gulp.task('deploy', function() {
    return gulp.src('.')
        .pipe(zip('my-artifact.war'))
        .pipe(maven.deploy({
            'groupId': 'com.mygroup',
            'repositories': [{
                'id': 'some-repo-id',
                'url': 'http://some-repo/url'
            }]
        }))
});

A task running a local Maven install:

var gulp = require('gulp'),
    maven = require('gulp-maven-deploy'),
    zip = require('gulp-zip');
 
gulp.task('deploy-local', function() {
    return gulp.src('.')
        .pipe(zip('my-artifact.war'))
        .pipe(maven.install({
            'groupId': 'com.mygroup',
        }))
});

Note: A local install in Maven means it is only available on your machine. A deployment is different as it means you ship the artifact off to some remote repository.

Upgrading from 0.x to 1.x

With gulp-maven-deploy version 1.0.0 we want to go one more step into the direction of a well performing gulp plugin. Following the single responsibility principle this plugin will only perform the deploy part in the future.

  • Implement a packaging logic for your files like gulp-zip
  • Remove the additional config level from options = {config: { ... }} to options = { ... }
  • Remove artifactId and type from config. They are now extracted from the file name. To influence them, rename the file in the gulp stream before piping it to gulp-maven-deploy
  • Callback function was removed. Use stream events finish or error to get notified about successful or unsuccessful deploys

Example project

There is a complete example project if you checkout the example directory.

$ cd example
$ npm install
$ ./node_modules/.bin/gulp

This will install gulp and allow you to run the sample. Gulp will run with with a local deploy configuration by default. You should see an artifact deployed to your local M2_HOME repository.

Running tests

$ npm test

Contributions

All pull requests and issues are welcome!

Big thanks to Gregers for making the maven-deploy module.