Requirements

System

Build the Crema library requires Java 11 or higher and Maven (https://maven.apache.org).

Tests have been done under Linux Ubuntu, Windows 10, and macOS with openjdk 11, 12, and 16. Continuous integration tests are done using Ubuntu Latest and JDK 11 via GitHub Actions.

Package Dependencies

Crema contains the dependencies shown below which are managed using Maven.

  • ch.javasoft.polco:polco:jar:4.7.1:compile

  • colt:colt:jar:1.2.0:compile

  • com.github.quickhull3d:quickhull3d:jar:1.0.0:compile

  • com.google.code.findbugs:jsr305:jar:3.0.2:compile

  • com.google.errorprone:error_prone_annotations:jar:2.3.4:compile

  • com.google.guava:failureaccess:jar:1.0.1:compile

  • com.google.guava:guava:jar:28.2-jre:compile

  • com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile

  • com.google.j2objc:j2objc-annotations:jar:1.3:compile

  • com.joptimizer:joptimizer:jar:3.5.1:compile

  • com.opencsv:opencsv:jar:5.2:compile

  • commons-beanutils:commons-beanutils:jar:1.9.4:compile

  • commons-cli:commons-cli:jar:1.4:compile

  • commons-collections:commons-collections:jar:3.2.2:compile

  • commons-logging:commons-logging:jar:1.2:compile

  • concurrent:concurrent:jar:1.3.4:compile

  • javax.validation:validation-api:jar:1.1.0.Final:compile

  • junit:junit:jar:4.13.1:compile

  • log4j:log4j:jar:1.2.14:compile

  • net.sf.lpsolve:lp_solve:jar:5.5.2:compile

  • net.sf.trove4j:trove4j:jar:3.0.3:compile

  • net.sourceforge.csparsej:csparsej:jar:1.1.1:compile

  • org.apache.commons:commons-collections4:jar:4.4:compile

  • org.apache.commons:commons-csv:jar:1.3:compile

  • org.apache.commons:commons-lang3:jar:3.4:compile

  • org.apache.commons:commons-math3:jar:3.6.1:compile

  • org.apache.commons:commons-text:jar:1.8:compile

  • org.apiguardian:apiguardian-api:jar:1.0.0:test

  • org.checkerframework:checker-qual:jar:2.10.0:compile

  • org.eclipse.persistence:org.eclipse.persistence.asm:jar:2.6.2:compile

  • org.eclipse.persistence:org.eclipse.persistence.core:jar:2.6.2:compile

  • org.glassfish:javax.json:jar:1.0.4:compile

  • org.hamcrest:hamcrest-core:jar:1.3:compile

  • org.jgrapht:jgrapht-core:jar:1.1.0:compile

  • org.junit.jupiter:junit-jupiter-api:jar:5.4.2:test

  • org.junit.jupiter:junit-jupiter-params:jar:5.4.2:test

  • org.junit.platform:junit-platform-commons:jar:1.4.2:test

  • org.opentest4j:opentest4j:jar:1.1.1:test

  • org.slf4j:slf4j-api:jar:1.7.7:compile

External Dipendencies

In order to compile Crema from source code, two dependencies not available in Maven repositories need to be installed manually.

lpsolve

mvn org.apache.maven.plugins:maven-dependency-plugin:3.1.2:get -DgroupId=net.sf.lpsolve -DartifactId=lp_solve -Dversion=5.5.2 -Dpackaging=jar -DremoteRepositories=https://raw.github.com/idsia/crema/mvn-repo/

polco

mvn org.apache.maven.plugins:maven-dependency-plugin:3.1.2:get -DgroupId=ch.javasoft.polco -DartifactId=polco -Dversion=4.7.1 -Dpackaging=jar -DremoteRepositories=https://raw.github.com/idsia/crema/mvn-repo/