Search code examples
mavenelki

What's the recommended way of building ELKI's current development status?


I forked ELKI from https://github.com/elki-project because I want to keep up to date with the latest development status while making my own changes and additions to the source (which I will possibly provide via pull request if it's sensible).

I followed the instructions in the README.md to package it with mvn package but there was no .jar created in elki/target/ - when checking out the release0.7.1 branch, it worked and I could start the minigui with java -cp elki-0.7.1.jar de.lmu.ifi.dbs.elki.application.ELKILauncher. Is there a recommended way to try out the latest changes on the master?


Solution

  • We are currently in the process of modularizing ELKI.

    But mvn package does create .jar files in elki/target/ here:

    elki/target/elki-0.7.2-SNAPSHOT.jar
    elki/target/elki-0.7.2-SNAPSHOT-javadoc.jar
    elki/target/elki-0.7.2-SNAPSHOT-sources.jar
    elki/target/dependency/elki-core-dbids-0.7.2-SNAPSHOT.jar
    elki/target/dependency/elki-core-dbids-int-0.7.2-SNAPSHOT.jar
    elki/target/dependency/elki-core-util-0.7.2-SNAPSHOT.jar
    elki/target/dependency/elki-docutil-0.7.2-SNAPSHOT.jar
    elki/target/dependency/elki-logging-0.7.2-SNAPSHOT.jar
    elki/target/dependency/hamcrest-core-1.3.jar
    elki/target/dependency/javaparser-core-2.3.0.jar
    elki/target/dependency/junit-4.12.jar
    elki/target/dependency/trove4j-3.0.3.jar
    

    The main jar, ./elki/target/elki-0.7.2-SNAPSHOT.jar is runnable, but will only include the command line interface because of modularization - the minigui is optional now.

    If you want a all-in-one bundle (as distributed on the web site), you need to enable the Maven profile bundle in addition to the functionality you want to include (e.g. mvn -Psvg,svm,uncertain,bundle package).