diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml
new file mode 100644
index 0000000..5b47509
--- /dev/null
+++ b/.github/dependabot.yaml
@@ -0,0 +1,25 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+version: 2
+updates:
+  - package-ecosystem: "maven"
+    directory: "/"
+    schedule:
+      interval: "daily"
+  - package-ecosystem: "github-actions"
+    directory: "/"
+    schedule:
+      interval: "daily"
diff --git a/README.md b/README.md
index 08a81e2..f23e203 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
 # Apache Creadur Tentacles
 
 [![ASF Build Status](https://ci-builds.apache.org/job/Creadur/job/Creadur-Tentacles/badge/icon)](https://ci-builds.apache.org/job/Creadur/job/Creadur-Tentacles/)
-[![Travis Build Status](https://api.travis-ci.com/apache/creadur-tentacles.svg?branch=master)](https://travis-ci.com/apache/creadur-tentacles)
+[![Travis Build Status](https://app.travis-ci.com/apache/creadur-tentacles.svg?branch=master)](https://app.travis-ci.com/apache/creadur-tentacles)
 
 # Running with >=JDK9
 
diff --git a/pom.xml b/pom.xml
index c4263eb..0f8451a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache</groupId>
     <artifactId>apache</artifactId>
-    <version>20</version>
+    <version>24</version>
   </parent>
   <groupId>org.apache.creadur.tentacles</groupId>
   <artifactId>apache-tentacles</artifactId>
@@ -77,15 +77,16 @@
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
-      <version>4.13.1</version>
+      <version>4.13.2</version>
       <scope>test</scope>
     </dependency>
   </dependencies>
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <javaVersion>9</javaVersion>
+    <javaVersion>1.8</javaVersion>
     <httpClientVersion>4.5.13</httpClientVersion>
     <apacheRatVersion>0.13</apacheRatVersion>
+    <project.build.outputTimestamp>1</project.build.outputTimestamp>
   </properties>
   <issueManagement>
     <system>JIRA</system>
@@ -97,14 +98,14 @@
   </ciManagement>
   <mailingLists>
     <mailingList>
-      <name>Whisker Development (Apache Creadur project)</name>
+      <name>Tentacles Development (Apache Creadur project)</name>
       <subscribe>dev-subscribe@creadur.apache.org</subscribe>
       <unsubscribe>dev-unsubscribe@creadur.apache.org</unsubscribe>
       <post>dev@creadur.apache.org</post>
       <archive>http://mail-archives.apache.org/mod_mbox/creadur-dev/</archive>
     </mailingList>
     <mailingList>
-      <name>WHisker Commits (Apache Creadur project)</name>
+      <name>Tentacles Commits (Apache Creadur project)</name>
       <subscribe>commits-subscribe@creadur.apache.org</subscribe>
       <unsubscribe>commits-unsubscribe@creadur.apache.org</unsubscribe>
       <archive>http://mail-archives.apache.org/mod_mbox/creadur-commits/</archive>
@@ -155,6 +156,33 @@
         </dependencies>
       </plugin>
       <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>animal-sniffer-maven-plugin</artifactId>
+        <version>1.20</version>
+        <executions>
+          <execution>
+            <!-- This checks the source code of our project -->
+            <!--
+              Note that this cannot use our ${javaVersion} property, so it must
+              be changed manually when we decide to move to a higher version of
+              Java
+            -->
+            <id>check-java-1.8-compat</id>
+            <phase>process-classes</phase>
+            <goals>
+              <goal>check</goal>
+            </goals>
+            <configuration>
+              <signature>
+                <groupId>org.codehaus.mojo.signature</groupId>
+                <artifactId>java18</artifactId>
+                <version>1.0</version>
+              </signature>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
         <artifactId>maven-assembly-plugin</artifactId>
         <configuration>
           <appendAssemblyId>true</appendAssemblyId>
@@ -180,7 +208,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-site-plugin</artifactId>
-        <version>3.8.2</version>
+        <version>3.9.1</version>
         <configuration>
           <outputEncoding>${project.build.sourceEncoding}</outputEncoding>
           <inputEncoding>${project.build.sourceEncoding}</inputEncoding>
