diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..7d5bffa
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,32 @@
+name: Java CI with Maven
+
+on:
+ push:
+ branches: [ "main", "master" ]
+ pull_request:
+ branches: [ "main", "master" ]
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Check out code
+ uses: actions/checkout@v4
+
+ - name: Set up JDK 17
+ uses: actions/setup-java@v4
+ with:
+ java-version: '17'
+ distribution: 'temurin'
+ cache: maven # Optional: Caches Maven dependencies
+
+ - name: Build with Maven
+ run: mvn -B package --file pom.xml
+
+ - name: Upload JAR artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: stardust-jar
+ path: target/stardust-0.0.1.jar
+ if-no-files-found: error
diff --git a/README.md b/README.md
index c500713..bb9d2e5 100644
--- a/README.md
+++ b/README.md
@@ -4,11 +4,40 @@ STARDUST is a framework for spectrum-based fault localization (SBFL).
The framework was used to conduct experiments with SBFL during my bachelor thesis.
+## Requirements
+
+This project requires Java 17 or newer to build and run.
+
+
## Installation
STARDUST uses [maven](https://maven.apache.org/) as its build tool.
The `pom.xml` file contains all dependencies you need in order to run the framework.
+### Using the Published Artifact
+
+Successful builds on the `main` or `master` branch publish a JAR artifact named `stardust-jar`. You can download this artifact by following these steps:
+
+1. Navigate to the **Actions** tab of the GitHub repository.
+2. Select the **Java CI with Maven** workflow from the list of workflows.
+3. Choose a successful run (usually marked with a green checkmark).
+4. Scroll down to the **Artifacts** section at the bottom of the run page.
+5. Download the `stardust-jar` artifact. This will typically be a ZIP file containing `stardust-0.0.1.jar`.
+
+Once downloaded and unzipped, you can run specific functionalities using a command similar to this:
+
+```bash
+java -cp stardust-0.0.1.jar fk.stardust.evaluation.sbfl.CreateRankings [args]
+```
+(Replace `[args]` with any arguments required by the chosen main class.)
+
+
+## Build Status
+
+
+
+This project uses GitHub Actions to automatically run tests and build the project upon commits and pull requests, ensuring code quality and integration.
+
## Theoretical Background
diff --git a/pom.xml b/pom.xml
index 36ef923..959c81b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -40,36 +40,30 @@
- jdom
- jdom
- 1.1
+ org.jdom
+ jdom2
+ 2.0.6.1
nz.ac.waikato.cms.weka
- weka-dev
- 3.7.10
+ weka-stable
+ 3.8.6
compile
- nz.ac.waikato.cms.weka
- LibSVM
- 1.0.5
+ tw.edu.ntu.csie
+ libsvm
+ 3.30
compile
-
-
- nz.ac.waikato.cms.weka
- weka-dev
-
-
org.testng
testng
- 6.8.5
+ 7.7.1
test