Skip to content
Boostrapping ADAMS applications simply from a list of modules, without compilation.
Java
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src/main
.gitignore
LICENSE
README.md
RELEASE.md
pom.xml

README.md

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.4</version>
    </dependency>
You can’t perform that action at this time.