Skip to content

Boostrapping ADAMS applications simply from a list of modules, without compilation.

License

Notifications You must be signed in to change notification settings

waikato-datamining/instant-adams

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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>