diff --git a/Jenkinsfile b/Jenkinsfile
index 5bd0abc..dc512eb 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -16,13 +16,11 @@
 // under the License.
   
 pipeline {
-  agent {
-    label '!Windows'
-  }
-
-  tools { 
-    maven 'Maven (latest)' 
-    jdk 'JDK 1.8 (latest)' 
+  agent any
+  
+  tools {
+    maven 'maven_latest' 
+    jdk 'jdk_1.8_latest' 
   }
 
   options {
@@ -48,7 +46,14 @@
     stage("Build info") {
       steps {
         echo '=== Environment variables ==='
-        sh 'printenv'
+        script {
+          if (isUnix()) {
+            sh 'printenv'
+          }
+          else {
+            bat 'set'
+          }
+        }
       }
     }
         
diff --git a/uimafit-core/pom.xml b/uimafit-core/pom.xml
index 23bfdd1..cf9a65d 100644
--- a/uimafit-core/pom.xml
+++ b/uimafit-core/pom.xml
@@ -70,9 +70,9 @@
       <artifactId>spring-test</artifactId>
       <scope>test</scope>
     </dependency>
-    <dependency> <!-- https://issues.apache.org/jira/browse/UIMA-5173 -->
-      <groupId>xmlunit</groupId>
-      <artifactId>xmlunit</artifactId>
+    <dependency>
+      <groupId>org.xmlunit</groupId>
+      <artifactId>xmlunit-assertj</artifactId>
       <scope>test</scope>
     </dependency>
     <dependency>
diff --git a/uimafit-core/src/test/java/org/apache/uima/fit/factory/AnalysisEngineFactoryTest.java b/uimafit-core/src/test/java/org/apache/uima/fit/factory/AnalysisEngineFactoryTest.java
index 32208d2..73ba3e9 100644
--- a/uimafit-core/src/test/java/org/apache/uima/fit/factory/AnalysisEngineFactoryTest.java
+++ b/uimafit-core/src/test/java/org/apache/uima/fit/factory/AnalysisEngineFactoryTest.java
@@ -84,9 +84,8 @@
 import org.apache.uima.resource.metadata.TypePriorityList;
 import org.apache.uima.resource.metadata.TypeSystemDescription;
 import org.apache.uima.util.XMLInputSource;
-import org.custommonkey.xmlunit.XMLAssert;
-import org.custommonkey.xmlunit.XMLUnit;
 import org.junit.Test;
+import org.xmlunit.assertj.XmlAssert;
 
 public class AnalysisEngineFactoryTest extends ComponentTestBase {
 
@@ -565,9 +564,7 @@
     
     String actual = FileUtils.readFileToString(target, "UTF-8");
     String expected = FileUtils.readFileToString(reference, "UTF-8");
-    XMLUnit.setIgnoreWhitespace(true);
-    XMLAssert.assertXMLEqual(expected, actual);
-//    assertEquals(expected, actual);
+    XmlAssert.assertThat(actual).and(expected).ignoreWhitespace().areIdentical();
   }
   
   @Test
diff --git a/uimafit-maven-plugin/pom.xml b/uimafit-maven-plugin/pom.xml
index 71f66ec..314d98b 100644
--- a/uimafit-maven-plugin/pom.xml
+++ b/uimafit-maven-plugin/pom.xml
@@ -149,12 +149,12 @@
           <dependency>
             <groupId>commons-io</groupId>
             <artifactId>commons-io</artifactId>
-            <version>2.2</version>
+            <version>2.7</version>
           </dependency>
           <dependency>
-            <groupId>xmlunit</groupId>
-            <artifactId>xmlunit</artifactId>
-            <version>1.4</version>
+            <groupId>org.xmlunit</groupId>
+            <artifactId>xmlunit-assertj</artifactId>
+            <version>2.6.4</version>
           </dependency>
         </dependencies>
       </plugin>
diff --git a/uimafit-parent/pom.xml b/uimafit-parent/pom.xml
index 0dc5850..4f6ba2e 100644
--- a/uimafit-parent/pom.xml
+++ b/uimafit-parent/pom.xml
@@ -99,6 +99,11 @@
         <version>3.15.0</version>
       </dependency>
       <dependency>
+        <groupId>org.xmlunit</groupId>
+        <artifactId>xmlunit-assertj</artifactId>
+        <version>2.6.4</version>
+      </dependency>
+      <dependency>
         <groupId>org.mockito</groupId>
         <artifactId>mockito-core</artifactId>
         <version>3.2.4</version>
@@ -266,6 +271,9 @@
                 <excludes combine.children="append">
                   <!-- Plain documentation -->
                   <exclude>README*</exclude>
+                  <!-- Eclipse config files -->
+                  <exclude>uimafit-docbook/.settings/**</exclude>
+                  <exclude>uimafit-docbook/.project</exclude>
                   <!-- GitHub templates -->
                   <exclude>.github/**</exclude>
                   <!-- Release files -->
