npm package: @lyra-network/nexus-deployer
Description: Deploy artifacts with classifiers to release/snapshot maven repository.
Author: Damien Guérin
Latest version: 0.1.15

# @lyra-network/nexus-deployer

## Why this repo?

This repo is a fork of https://github.com/cthorne66/nexus-deployer.

It was forked to fix a curl issue on Windows platform (explained here : https://github.com/cthorne66/nexus-deployer/pull/14)

## Getting Started

To install

```shell
npm install @lyra-network/nexus-deployer --save-dev
```

From there, you have options

1. Run with Node
2. Run with Gulp
3. Run with Grunt

## Running with Node

```js
var deployer = require("@lyra-network/nexus-deployer");

var release = {
  groupId: "nexus-deployer",
  artifactId: "nexus-deployer",
  version: "1.0",
  packaging: "zip",
  auth: {
    username: "admin",
    password: "admin123"
  },
  pomDir: "build/pom",
  url: "http://localhost:8081/nexus/content/repositories/releases",
  artifact: "build/nexus-deployer.zip",
  noproxy: "localhost",
  cwd: ""
};

deployer.deploy(release, function() {
  // your async call back here
  // done();
});
```

## Running with Gulp

```js
var deployer = require("@lyra-network/nexus-deployer");

// dont forget to create a task to actually generate the artifact as assumed
// here with the dependent 'artifacts:generate' task
gulp.task("deploy:artifacts", ["artifacts:generate"], function(callback) {
  var snapshot = {
    groupId: "nexus-deployer",
    artifactId: "nexus-deployer",
    version: "1.2-SNAPSHOT",
    packaging: "zip",
    auth: {
      username: "admin",
      password: "admin123"
    },
    pomDir: "build/pom",
    url: "http://localhost:8081/nexus/content/repositories/snapshots",
    artifact: "build/nexus-deployer.zip",
    noproxy: "localhost",
    cwd: "",
    quiet: false,
    insecure: true
  };

  deployer.deploy(snapshot, callback);
});
```

## Running with Grunt

This plugin requires Grunt `~0.4.2`

If you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

```js
grunt.loadNpmTasks("@lyra-network/nexus-deployer");
```

## The "nexusDeployer" task

### Overview

In your project's Gruntfile, add a section named `nexusDeployer` to the data object passed into `grunt.initConfig()`.

```js
grunt.initConfig({
  nexusDeployer: {
    release: {
      options: {
        groupId: "nexus-deployer",
        artifactId: "nexus-deployer",
        version: "1.0",
        packaging: "zip",
        classifier: "dev",
        auth: {
          username: "admin",
          password: "admin123"
        },
        pomDir: "build/pom",
        url: "http://localhost:9220/nexus/content/repositories/releases",
        artifact: "build/nexus-deployer.zip",
        noproxy: "localhost",
        cwd: ""
      }
    }
  }
});
```

### Options

#### options.groupId

Type: `String`
Default value: `''`

The group owning the artifact.

#### options.artifactId

Type: `String`
Default value: `''`

The artifact id of the artifact.

#### options.packaging

Type: `String`
Default value: `''`

Type of artifact. eg zip, jar, pom, war etc.

#### options.classifier

Type: `String`
Defaut value: `''`

An optional classifier that can further distinguish between artifacts of the same group, id and version. eg dev, prod etc. (i.e. artifact-1.0-dev.zip, artifact-1.0-prod.zip)

#### options.version

Type: `String`
Default value: `''`

Version of the artifact being uploaded. Ensure you have your versions ending with -SNAPSHOT when an artifact is being uploaded to snapshot repository. Often artifact repositories
have that restriction.

#### options.auth.password

Type: `String`
Default value: `''`

Password to be used for authentication against nexus server

#### options.auth.username

Type: `String`
Default value: `''`

Username to be used for authentication against nexus server

#### options.insecure

Type: `boolean`
Default value: `false`

Accept Self-Signed certificates when connecting over https.

#### options.url

Type: `String`
Default value: `''`

Nexus repository url. Usually /nexus/content/repositories/snapshots or /nexus/content/repositories/releases

#### options.artifact

Type: `String`
Default value: `''`

Artifact to be uploaded. Must be a file.

#### options.noproxy

Type: `String`
Default value: `'127.0.0.1'`

list of comma separated addresses to exclude for which proxy is not applicable. This is a must when running proxy and HTTP_PROXY environment value is set.

#### options.cwd

Type: `String`
Default value: `''`

working directory from which deployer will deploy artifacts.

#### options.parallel

Type: `Boolean`
Default value: `'false'`

Whether to upload artifacts in parallel.

#### options.quiet

Type: `Boolean`
Default value: `'false'`

Chatty flag.

### Usage Examples

Deploy to release repository

```js
grunt.initConfig({
  nexusDeployer: {
    release: {
      options: {
        groupId: "nexus-deployer",
        artifactId: "nexus-deployer",
        version: "1.0",
        packaging: "zip",
        auth: {
          username: "admin",
          password: "admin123"
        },
        pomDir: "build/pom",
        url: "http://localhost:8081/nexus/content/repositories/releases",
        artifact: "build/nexus-deployer.zip",
        noproxy: "localhost",
        cwd: ""
      }
    }
  }
});
```

Deploy to snapshots repository

```js
grunt.initConfig({
  nexusDeployer: {
    release: {
      options: {
        groupId: "nexus-deployer",
        artifactId: "nexus-deployer",
        version: "1.0-SNAPSHOT",
        packaging: "zip",
        auth: {
          username: "admin",
          password: "admin123"
        },
        pomDir: "build/pom",
        url: "http://localhost:8081/nexus/content/repositories/snapshots",
        artifact: "build/nexus-deployer.zip",
        noproxy: "localhost",
        cwd: "",
        parallel: false,
        quiet: true
      }
    }
  }
});
```

To run

```
grunt nexusDeployer
```

## Release History