grunt-run-java

0.1.1 • Public • Published

grunt-run-java

The Grunt Plugin for running java, javac, jar, signjar and other java related commands from within Grunt

Getting Started

This plugin requires Grunt ~0.4.4

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-run-java --save-dev

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

grunt.loadNpmTasks('grunt-run-java');

The "run_java" task

Overview

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

grunt.initConfig({
  run_java: {
    options: {
      // Task-specific options go here.
    },
    your_target: {
      // Target-specific details go here.
      execOptions:{
        cwd: "/your/current/working/directory/"
      }, 
      command: "",      //java ,javac, jarsigner, jar
      jarName: "",      //used for java, jar and jarsigner
      className: "",    //used for java
      javaArgs : "",    //used for java
      sourceFiles: [""],//used for javac
      javaOptions: {    //used for java and javac
        "classpath": [""],
         ...
      },
      manifestName: "", //used for jar
      dir: "",          //used for jar
      files: "",        //used for jar
      jarOptions : {    //used for jar and jarsigner
        "keystore": "",
      }, 
      alias: ""         //used for jarsigner
    },
  },
});

Options

stdout

Type: boolean
Default: true

Show stdout in the Terminal.

stderr

Type: boolean
Default: true

Show stderr in the Terminal.

stdin

Type: boolean
Default: true

Forward the terminal's stdin to the command.

failOnError

Type: boolean
Default: true

Fail task if it encounters an error.

execOptions

Type: object

Specify some options to be passed to the .exec() method:

  • cwd String Current working directory of the child process
  • env Object Environment key-value pairs
  • setsid Boolean
  • encoding String (Default: 'utf8')
  • timeout Number (Default: 0)
  • maxBuffer Number (Default: 200*1024)
  • killSignal String (Default: 'SIGTERM')

Usage Examples

Java Command

Run a java command

grunt.initConfig({
  run_java: {
    options: { //Default is true
      stdout: false,
      stderr: false,
      stdin: false,
      failOnError: false
    }, 
    java_command: {
      execOptions:{
        cwd: "/path/where/java/command/is/run/"
      },    
      command: "java",
      jarName: "your jarfile name", 
      className: "your class name",
      javaOptions: { //java Options
        "classpath": ["1.jar", "2.jar"] 
      },
      javaArgs : "your argument"
    }
  }
});

Javac Command

Run a javac command

grunt.initConfig({
  run_java: {
    options: { //Default is true
      stdout: false,
      stderr: false,
      stdin: false,
      failOnError: false
    },
    javac_task: {
      execOptions:{
        cwd: "/path/where/javac/command/is/run/"
      }, 
      command: "javac",
      javaOptions: { //javac Options
        "classpath": ["1.jar", "2.jar"]
        "d": "example/bin"
      },
      sourceFiles: ["java/file/location/*.java", "java/file/another/location/*.java"]
    }
  }
});

Jar Command

Run a jar command

grunt.initConfig({
  run_java: {
    options: { //Default is true
      stdout: false,
      stderr: false,
      stdin: false,
      failOnError: false
    },
    jar_task: {
      execOptions:{
        cwd: ""/path/where/jar/command/is/run/"
      },
      command: "jar",
      jarName: "my.jar",
      jarOptions : "cfm", //{ctxui}[vfm0Me]
      manifestName: "MANIFEST",
      dir: "bin/",
      files: "."
    }
  }
});

jarsigner Command

Run a jarsigner command

grunt.initConfig({
  run_java: {
    options: { //Default is true
      stdout: false,
      stderr: false,
      stdin: false,
      failOnError: false
    },
    sign_task: {
      execOptions:{
        cwd: "/path/where/jarsinger/command/is/run/"
      },
      command: "jarsigner",
      jarName: "my.jar",
      jarOptions : { //jarsigner options
        "keystore": "keystore",
        "signedjar": "mySigned.jar"
      },
      alias: "signFiles"
    }
  }
});

Run command as a function

You can also supply a function that returns the command:

grunt.initConfig({
    run_java: {
        hello: {
            command: function () {
                return 'jar -cf myapplet.jar -C bin/ .';
            }
        }
    }
});

Which can also take arguments:

run_java: {
    hello: {
        command: function (options) {
            return 'jar ' + options;
        }
    }
}
 
grunt.loadNpmTasks('grunt-run-java');
grunt.registerTask('default', ['run-java:hello']);

Multiple commands

Run multiple commands by placing them in an array which is joined using && or ;. && means run this only if the previous command succeeded. You can also use & to have the commands run concurrently (by executing all commands except the last one in a subshell).

grunt.initConfig({
    shell: {
        multiple: {
            command: [
                'mkdir bin',
                'jar -cf myapplet.jar -C bin/ .',
            ].join('&&')
        }
    }
});

Release History

Initial Version

License

MIT © [Kannan Loganathan] kannan.loganathan@gmail.com

Dependents (0)

Package Sidebar

Install

npm i grunt-run-java

Weekly Downloads

81

Version

0.1.1

License

none

Last publish

Collaborators

  • kannanloganathan