diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
new file mode 100644
index 0000000..8cae7a4
--- /dev/null
+++ b/.github/workflows/maven.yml
@@ -0,0 +1,32 @@
+# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
+# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-maven
+
+name: Java CI with Maven
+
+on:
+  push:
+    branches: [ "main" ]
+  pull_request:
+    branches: [ "main" ]
+
+jobs:
+  build:
+
+    runs-on: ubuntu-latest
+
+    steps:
+    - uses: actions/checkout@v3
+    - run: |
+        wget -O $RUNNER_TEMP/java_package.tar.gz -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz
+    - uses: actions/setup-java@v3
+      with:
+        distribution: 'jdkfile'
+        jdkFile: ${{ runner.temp }}/java_package.tar.gz
+        java-version: '8.0.0'
+        architecture: x64
+    - name: Build with Maven
+      run: mvn -B package checkstyle:check --file pom.xml
+
+    # Optional: Uploads the full dependency graph to GitHub to improve the quality of Dependabot alerts this repository can receive
+    #- name: Update dependency graph
+    #  uses: advanced-security/maven-dependency-submission-action@571e99aab1055c2e71a1e2309b9691de18d6b7d6
diff --git a/batik-test-old/src/test/java/org/apache/batik/test/xml/JUnitRunnerTestCase.java b/batik-test-old/src/test/java/org/apache/batik/test/xml/JUnitRunnerTestCase.java
index 1e5ba37..1775368 100644
--- a/batik-test-old/src/test/java/org/apache/batik/test/xml/JUnitRunnerTestCase.java
+++ b/batik-test-old/src/test/java/org/apache/batik/test/xml/JUnitRunnerTestCase.java
@@ -124,19 +124,21 @@
         String id = getId(test);
         System.out.println("Running: " + id);
         TestReport report = test.run();
+        StringBuilder error = new StringBuilder();
         if (!report.hasPassed()) {
-            System.out.println("Failed: " + id);
+            error.append("Failed: ").append(id).append("\n");
             if (report.getDescription() != null) {
                 for (TestReport.Entry entry : report.getDescription()) {
-                    System.out.println(entry.getKey() + " " + entry.getValue());
+                    error.append(entry.getKey()).append(" ").append(entry.getValue()).append("\n");
                 }
             }
         }
-        Assert.assertTrue(id, report.hasPassed());
+        Assert.assertTrue(error.toString(), report.hasPassed());
     }
 
     private static List<String> EXCLUDE = Arrays.asList(
 //fail on CI
+"ShowSVG",
 "ATransform.defaultContextGeneration",
 "Bug4945.defaultContextGeneration",
 "Bug6535.defaultContextGeneration",
