Giter Club home page Giter Club logo

instant-adams's Introduction

instant-adams

Boostrapping ADAMS applications simply from list of modules, without compilation. Additional jars (binary and sources) can be injected into the process as well. You can either generate cross-platform applications, by using shell scripts for Linux/Mac and batch files for Windows, or Linux packages for Debian (.deb) and/or Redhat (.rpm).

Command-line

Allows bootstrapping of ADAMS applications by simply supplying the modules.


Usage: [--help] [-m DIR] [-u FILE] [-j DIR] [-p FILE] [-n NAME]
       -M MODULES -V VERSION [-d DEPENDENCY...] [-D FILE...]
       [-J JAR_OR_DIR...] [-s] [-S JAR_OR_DIR...] -o DIR [-C]
       [-v JVM...] [-c CLASSNAME] [--deb] [--deb-snippet FILE] [--rpm]
       [--rpm-snippet FILE] [-l]

Options:
-m, --maven_home DIR
	The directory with a local Maven installation to use instead of the
	bundled one.

-u, --maven_user_settings FILE
	The file with the maven user settings to use other than
	$HOME/.m2/settings.xml.

-j, --java_home DIR
	The Java home to use for the Maven execution.

-p, --pom_template FILE
	The alternative template for the pom.xml to use.

-n, --name NAME
	The name to use for the project in the pom.xml. Also used as library
	directory and executable name when generating Debian/Redhat packages.

-M, --module MODULES
	The comma-separated list of ADAMS modules to use for the application,
	e.g.: adams-weka,adams-groovy,adams-excel

-V, --version VERSION
	The version of ADAMS to use, e.g., '20.1.1' or '20.2.0-SNAPSHOT'.
	Use 'LATEST' to use the latest snapshot version available.

-d, --dependency DEPENDENCY
	The additional maven dependencies to use for bootstrapping ADAMS
	(group:artifact:version), e.g.: nz.ac.waikato.cms.weka:kfGroovy:1.0.12

-D, --dependency-file FILE
	The file(s) with additional maven dependencies to use for bootstrapping
	ADAMS (group:artifact:version), one dependency per line.

-J, --external-jar JAR_OR_DIR
	The external jar or directory with jar files to also include in the
	application.

-s, --sources
	If enabled, source jars of all the Maven artifacts will get downloaded
	as well and stored in a separated directory.

-S, --external-source JAR_OR_DIR
	The external source jar or directory with source jar files to also
	include in the application.

-o, --output_dir DIR
	The directory to output the bootstrapped ADAMS application in.

-C, --clean
	If enabled, the 'clean' goals gets executed.

-v, --jvm JVM
	The parameters to pass to the JVM before launching the application in
	the scripts.

-c, --main_class CLASSNAME
	The main class to launch in the scripts.

--deb
	If enabled, a Debian .deb package is generated. Required tools: fakeroot,
	dpkg-deb

--deb-snippet FILE
	The custom Maven pom.xml snippet for generating a Debian package.

--rpm
	If enabled, a Redhat .rpm package is generated.

--rpm-snippet FILE
	The custom Maven pom.xml snippet for generating a Redhat package.

-l, --list_modules
	If enabled, all currently available ADAMS modules are output (all other
	options get ignored).

Examples

Cross-platform

The following examples bootstrap an ADAMS application (from the 20.1.1 release) with support for Weka, Groovy and Excel:

java -jar instant-adams-0.1.4-spring-boot.jar \
  -C \
  -M adams-weka,adams-groovy,adams-excel \
  -V 20.1.1 \
  -o ./out \
  -v -Xmx1g

And the same using Java:

import adams.bootstrap.Main;
import java.io.File;

public class BootstrapTest {
  
  public static void main(String[] args) {
    Main main = new Main()
      .clean(true)
      .modules("adams-weka,adams-groovy,adams-excel")
      .version("20.1.1")
      .outputDir(new File("./out"))
      .jvm("-Xmx1g");
    String result = main.execute();
    if (result != null)
      System.err.println(result);
  }
} 

Debian package

The same, but compiled as Debian (.deb) package:

java -jar instant-adams-0.1.4-spring-boot.jar \
  -C \
  -M adams-weka,adams-groovy,adams-excel \
  -n adams-test \
  -V 20.1.1 \
  -o ./out \
  -v -Xmx1g \
  --deb

And the same using Java:

import adams.bootstrap.Main;
import java.io.File;

public class BootstrapTest {
  
  public static void main(String[] args) {
    Main main = new Main()
      .clean(true)
      .modules("adams-weka,adams-groovy,adams-excel")
      .name("adams-test")
      .version("20.1.1")
      .outputDir(new File("./out"))
      .jvm("-Xmx1g")
      .debian(true);
    String result = main.execute();
    if (result != null)
      System.err.println(result);
  }
} 

Note: The name is used as package name and executable for launching the application, in this case you will get /usr/bin/weka.

Releases

Maven

    <dependency>
      <groupId>nz.ac.waikato.cms.adams</groupId>
      <artifactId>instant-adams</artifactId>
      <version>0.1.5</version>
    </dependency>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.