Skip to content

Getting Started

HansvdLaan edited this page Apr 25, 2018 · 29 revisions

Before we can start, we have to install HermieLab into our local Maven repository so we can use it in our projects.

Step 1: Clone the HermieLab repository

Step 2: Run the mvn clean install command

From this point on, we can use HermieLab in our projects. Just include the dependencies shown below in your projects, reimport and then you're ready to go!

HermieLab

<!-- For the annotations -->
<dependency>
    <groupId>hansvdlaan.hermielab</groupId>
    <artifactId>annotations</artifactId>
    <version>0.1-SNAPSHOT</version>
</dependency>

<!-- For the annotation proccessors generating the settings file and 
the learning setups -->
<dependency>
    <groupId>hansvdlaan.hermielab</groupId>
    <artifactId>processor</artifactId>
    <version>0.1-SNAPSHOT</version>
</dependency>

<!-- For the learning setups -->
<dependency>
    <groupId>hansvdlaan.hermielab</groupId>
    <artifactId>core</artifactId>
    <version>0.1-SNAPSHOT</version>
</dependency>

<!-- For the bytecode injections-->
<dependency>
    <groupId>org.javassist</groupId>
    <artifactId>javassist</artifactId>
    <version>3.20.0-GA</version>
</dependency>

LearnLib

    <dependencyManagement>
        <dependencies>
            <!--
                Import all dependencies declared by LearnLib. This also
                imports all automatalib dependencies in a matching
                version.
            -->
            <dependency>
                <groupId>de.learnlib</groupId>
                <artifactId>learnlib-parent</artifactId>
                <version>0.12.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <!-- Basic LearnLib functionalities -->
        <dependency>
            <groupId>de.learnlib</groupId>
            <artifactId>learnlib-core</artifactId>
        </dependency>

        <dependency>
            <groupId>de.learnlib</groupId>
            <artifactId>learnlib-counterexamples</artifactId>
        </dependency>

        <dependency>
            <groupId>de.learnlib</groupId>
            <artifactId>learnlib-basic-eqtests</artifactId>
        </dependency>

        <dependency>
            <groupId>de.learnlib</groupId>
            <artifactId>learnlib-simulator</artifactId>
        </dependency>

        <dependency>
            <groupId>de.learnlib</groupId>
            <artifactId>learnlib-drivers-basic</artifactId>
        </dependency>

        <!-- A cache filter eliminates duplicate queries -->
        <dependency>
            <groupId>de.learnlib</groupId>
            <artifactId>learnlib-cache</artifactId>
        </dependency>

        <!-- Dependencies for commonly used learning algorithms -->
        <dependency>
            <groupId>de.learnlib</groupId>
            <artifactId>learnlib-lstar-generic</artifactId>
        </dependency>

        <dependency>
            <groupId>de.learnlib</groupId>
            <artifactId>learnlib-ttt</artifactId>
        </dependency>

        <dependency>
            <groupId>de.learnlib</groupId>
            <artifactId>learnlib-dhc</artifactId>
        </dependency>

        <dependency>
            <groupId>de.learnlib</groupId>
            <artifactId>learnlib-discrimination-tree</artifactId>
        </dependency>

        <dependency>
            <groupId>de.learnlib</groupId>
            <artifactId>learnlib-kearns-vazirani</artifactId>
        </dependency>

        <!-- Example automata that ship with LearnLib -->
        <dependency>
            <groupId>de.learnlib.testsupport</groupId>
            <artifactId>learnlib-learning-examples</artifactId>
            <scope>compile</scope>
        </dependency>

        <!-- For visualization purposes -->
        <dependency>
            <groupId>net.automatalib</groupId>
            <artifactId>automata-commons-dotutil</artifactId>
        </dependency>
    </dependencies>

Jflap

JFLAP relies on jitpack.io instead of maven central to deliver artifacts. Just add the following snippet to your pom.xml file to use the jitpack repository:

<repository>
    <id>jitpack.io</id>
    <url>https://jitpack.io</url>
</repository>

Finally, include jflap-lib as a dependency:

<dependency>
    <groupId>com.github.citiususc</groupId>
    <artifactId>jflap-lib</artifactId>
    <version>1.3</version>
</dependency>

JFlap has a small assertion bug which is hindering when you want to debug JFLAP. In the resource folder within this project, a fixed version can be found. To use this version instead, just include this as dependency:

<dependency>
    <groupId>Jflap</groupId>
    <artifactId>Jflap</artifactId>
    <version>1.7.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/src/main/resources/jflaplib-cli-1.3-bundle.jar</systemPath>
</dependency>