diff --git a/.gitignore b/.gitignore
index 1da8d91..f5f72ff 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,4 @@
 target/
 api-change-report/
 issuesFixed
+.factorypath
diff --git a/Jenkinsfile b/Jenkinsfile
index 0edcbcf..7d2ed34 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -14,75 +14,11 @@
 // KIND, either express or implied. See the License for the
 // specific language governing permissions and limitations
 // under the License.
-  
-pipeline {
-  agent any
-  tools { 
-    maven 'Maven (latest)' 
-    jdk 'JDK 1.8 (latest)' 
-  }
 
-  options {
-    buildDiscarder(logRotator(
-      numToKeepStr: '25', 
-      artifactNumToKeepStr: '5'
-    ))
-    
-    // Seems not to be working reliably yet: https://issues.jenkins-ci.org/browse/JENKINS-48556
-    // timestamps()
-  }
-  
-  parameters {
-    string(
-      name: 'extraMavenArguments',
-      defaultValue: "",
-      description: "Extra arguments to be passed to maven (for testing)")
-  }
+@Library('uima-build-jenkins-shared-library') _
 
-  stages {
-    // Display information about the build environemnt. This can be useful for debugging
-    // build issues.
-    stage("Build info") {
-      steps {
-        echo '=== Environment variables ==='
-        sh 'printenv'
-      }
-    }
-        
-    // Perform a merge request build. This is a conditional stage executed with the GitLab
-    // sources plugin triggers a build for a merge request. To avoid conflicts with other
-    // builds, this stage should not deploy artifacts to the Maven repository server and
-    // also not install them locally.
-    stage("Pull request build") {
-      when { branch 'PR-*' }
-    
-      steps {
-        script {
-          currentBuild.description = 'Triggered by: <a href="' + CHANGE_URL + '">' + BRANCH_NAME +
-            ': ' + env.CHANGE_BRANCH + '</a> (' +  env.CHANGE_AUTHOR_DISPLAY_NAME + ')'
-        }
-
-        withMaven() {
-          sh script: 'mvn ' +
-            params.extraMavenArguments +
-            ' -U -Dmaven.test.failure.ignore=true clean verify'
-        }
-      }
-    }
-    
-    // Perform a SNAPSHOT build of a main branch. This stage is typically executed after a
-    // merge request has been merged. On success, it deploys the generated artifacts to the
-    // Maven repository server.
-    stage("SNAPSHOT build") {
-      when { branch pattern: "main|main-v2", comparator: "REGEXP" }
-      
-      steps {
-        withMaven() {
-          sh script: 'mvn ' +
-            params.extraMavenArguments +
-            ' -U -Dmaven.test.failure.ignore=true clean deploy'
-        }
-      }
-    }
-  }
+defaultPipeline {
+  // The Eclipse libraries that our plugins depend unfortunately on required Java 11
+  jdk = 'jdk_11_latest'
+  extraMavenArguments = '-Pjacoco,pmd,run-rat-report'
 }
diff --git a/ruta-core/pom.xml b/ruta-core/pom.xml
index a1fae5b..7401081 100644
--- a/ruta-core/pom.xml
+++ b/ruta-core/pom.xml
@@ -216,16 +216,14 @@
                 <pluginExecution>
                   <pluginExecutionFilter>
                     <groupId>de.jflex</groupId>
-                    <artifactId>
-                      jflex-maven-plugin
-                    </artifactId>
+                    <artifactId>jflex-maven-plugin</artifactId>
                     <versionRange>[1.6.1,)</versionRange>
                     <goals>
                       <goal>generate</goal>
                     </goals>
                   </pluginExecutionFilter>
                   <action>
-                    <ignore />
+                    <execute />
                   </action>
                 </pluginExecution>
               </pluginExecutions>
