@lyra-network/nexus-deployer
Version:
Deploy artifacts with classifiers to release/snapshot maven repository.
287 lines (210 loc) • 6.16 kB
Markdown
# @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