Index: applications/viewer/jmapviewer/build.xml
===================================================================
--- applications/viewer/jmapviewer/build.xml	(revision 36292)
+++ applications/viewer/jmapviewer/build.xml	(revision 36293)
@@ -3,9 +3,11 @@
          xmlns:jacoco="antlib:org.jacoco.ant"
          xmlns:if="ant:if"
-         xmlns:ivy="antlib:org.apache.ivy.ant"
+         xmlns:mvn="antlib:org.apache.maven.resolver.ant"
 >
 
     <property name="java.lang.version" value="8" />
     <dirname property="base.dir" file="${ant.file.jmapviewer}"/>
+    <property name="maven.artifact.resolver.version" value="1.5.1"/>
+    <property name="maven.artifact.resolver.parent.dir" value="${user.home}/.m2/repository/org/apache/maven/resolver/maven-resolver-ant-tasks/${maven.artifact.resolver.version}/"/>
     <property name="jacoco.includes" value="org.openstreetmap.gui.jmapviewer.*" />
     <property name="jacoco.inclbootstrapclasses" value="false" />
@@ -73,8 +75,4 @@
     </target>
 
-    <target name="checkdepsupdate" depends="resolve">
-        <ivy:checkdepsupdate/>
-    </target>
-
     <target name="svn_info" description="Get SVN info for use in JAR/ZIP filenames.">
         <!-- Get the svn ReleaseVersion property -->
@@ -168,10 +166,45 @@
     </target>
 
-    <target name="resolve" description="Resolve Ivy dependencies">
-        <ivy:resolve/>
-        <ivy:cachepath pathid="checkstyle.classpath" conf="checkstyle"/>
-        <ivy:cachepath pathid="testlib.classpath" conf="test"/>
-        <ivy:cachepath pathid="jacoco.classpath" conf="jacocoant"/>
-        <ivy:cachepath pathid="spotbugs.classpath" conf="spotbugs"/>
+    <target name="download-artifact-resolver">
+        <mkdir dir="${maven.artifact.resolver.parent.dir}"/>
+        <get src="https://repo1.maven.org/maven2/org/apache/maven/resolver/maven-resolver-ant-tasks/${maven.artifact.resolver.version}/maven-resolver-ant-tasks-${maven.artifact.resolver.version}-uber.jar"
+             dest="${maven.artifact.resolver.parent.dir}/maven-resolver-ant-tasks-${maven.artifact.resolver.version}-uber.jar"
+             usetimestamp="true" />
+    </target>
+    <target name="init-maven" depends="download-artifact-resolver">
+        <path id="maven.lib.path">
+            <fileset dir="${maven.artifact.resolver.parent.dir}" includes="maven-resolver-ant-tasks-${maven.artifact.resolver.version}-uber.jar"/>
+        </path>
+        <taskdef uri="antlib:org.apache.maven.resolver.ant" resource="org/apache/maven/resolver/ant/antlib.xml" classpathref="maven.lib.path"/>
+    </target>
+    <target name="resolve" depends="init-maven" description="Resolve Maven dependencies">
+        <mvn:pom file="pom.xml"/>
+        <!-- This stanza is necessary since the maven resolver doesn't read repo settings from the pom.xml file -->
+        <!-- resolver.repositories makes it global -->
+        <mvn:remoterepos id="resolver.repositories">
+            <mvn:remoterepo id="JOSM-central" url="https://josm.openstreetmap.de/nexus/content/repositories/central/" />
+        </mvn:remoterepos>
+        <mvn:resolve>
+            <mvn:path refid="testlib.classpath" classpath="test"/>
+        </mvn:resolve>
+        <mvn:resolve>
+            <mvn:dependencies>
+                <mvn:dependency groupId="org.jacoco" artifactId="org.jacoco.ant" version="${pom.properties.version.maven.jacoco}" classifier="nodeps" type="jar" scope="test"/>
+            </mvn:dependencies>
+            <mvn:path refid="jacoco.classpath" classpath="test"/>
+        </mvn:resolve>
+        <mvn:resolve>
+            <mvn:dependencies>
+                <mvn:dependency groupId="com.puppycrawl.tools" artifactId="checkstyle" version="${pom.properties.version.maven.checkstyle}" scope="compile"/>
+            </mvn:dependencies>
+            <mvn:path refid="checkstyle.classpath" classpath="compile"/>
+        </mvn:resolve>
+        <mvn:resolve>
+            <mvn:dependencies>
+                <mvn:dependency groupId="com.github.spotbugs" artifactId="spotbugs" version="${pom.properties.version.maven.spotbugs}" scope="compile"/>
+                <mvn:dependency groupId="com.github.spotbugs" artifactId="spotbugs-ant" version="${pom.properties.version.maven.spotbugs}" scope="compile"/>
+            </mvn:dependencies>
+            <mvn:path refid="spotbugs.classpath" classpath="compile"/>
+        </mvn:resolve>
     </target>
 
Index: applications/viewer/jmapviewer/ivy.xml
===================================================================
--- applications/viewer/jmapviewer/ivy.xml	(revision 36292)
+++ 	(revision )
@@ -1,30 +1,0 @@
-<ivy-module version="2.0" xmlns:maven="http://ant.apache.org/ivy/maven">
-    <info organisation="org.openstreetmap.josm" module="jmapviewer"/>
-    <configurations>
-        <conf name="spotbugs" visibility="private" description="Everything needed for running SpotBugs"/>
-        <conf name="checkstyle" visibility="private" description="Everything needed for running Checkstyle"/>
-        <conf name="jacocoant" visibility="private" description="Jacoco Ant test library"/>
-        <conf name="test" visibility="private" description="Test libraries"/>
-    </configurations>
-    <dependencies>
-        <!-- jacocoant->default - don't forget to update the Jacoco disable section in build.xml -->
-        <dependency conf="jacocoant->default" org="org.jacoco" name="org.jacoco.ant" rev="0.8.11">
-            <artifact name="org.jacoco.ant" type="jar" maven:classifier="nodeps"/>
-        </dependency>
-        <!-- test->default -->
-        <dependency conf="test->default" org="com.github.spotbugs" name="spotbugs-annotations" rev="4.8.3"/>
-        <dependency conf="test->default" org="org.junit.platform" name="junit-platform-launcher" rev="1.10.2"/>
-        <dependency conf="test->default" org="org.junit.platform" name="junit-platform-suite" rev="1.10.2"/>
-        <dependency conf="test->default" org="org.junit.vintage" name="junit-vintage-engine" rev="5.10.2"/>
-        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-params" rev="5.10.2"/>
-        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-api" rev="5.10.2"/>
-        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-engine" rev="5.10.2"/>
-        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-migrationsupport" rev="5.10.2"/>
-        <!-- checkstyle->default -->
-        <dependency org="com.puppycrawl.tools" name="checkstyle" rev="9.3" conf="checkstyle->default"/>
-        <!-- spotbugs->default -->
-        <dependency org="com.github.spotbugs" name="spotbugs" rev="4.8.3" conf="spotbugs->default"/>
-        <dependency org="com.github.spotbugs" name="spotbugs-ant" rev="4.8.3" conf="spotbugs->default"/>
-    </dependencies>
-</ivy-module>
-
Index: applications/viewer/jmapviewer/ivysettings.xml
===================================================================
--- applications/viewer/jmapviewer/ivysettings.xml	(revision 36292)
+++ 	(revision )
@@ -1,8 +1,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- License: GPL. For details, see LICENSE file. -->
-<ivysettings>
-  <settings defaultResolver="josm-nexus"/>
-  <resolvers>
-    <ibiblio name="josm-nexus" m2compatible="true" root="https://josm.openstreetmap.de/nexus/content/repositories/public/" />
-  </resolvers>
-</ivysettings>
Index: applications/viewer/jmapviewer/pom.xml
===================================================================
--- applications/viewer/jmapviewer/pom.xml	(revision 36292)
+++ applications/viewer/jmapviewer/pom.xml	(revision 36293)
@@ -6,5 +6,5 @@
     <groupId>org.openstreetmap.jmapviewer</groupId>
     <artifactId>jmapviewer</artifactId>
-    <version>2.19-SNAPSHOT</version>
+    <version>2.20</version>
 
     <name>JMapViewer</name>
@@ -13,6 +13,7 @@
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <maven.compiler.release>8</maven.compiler.release>
-        <version.maven.spotbugs>4.8.1.0</version.maven.spotbugs>
-        <version.maven.jacoco>0.8.11</version.maven.jacoco>
+        <version.maven.spotbugs>4.8.6</version.maven.spotbugs>
+        <version.maven.jacoco>0.8.12</version.maven.jacoco>
+        <version.maven.checkstyle>9.3</version.maven.checkstyle>
         <sonar.host.url>https://josm.openstreetmap.de/sonar</sonar.host.url>
         <sonar.projectKey>jmapviewer</sonar.projectKey>
@@ -79,4 +80,17 @@
     </distributionManagement>
 
+    <repositories>
+        <repository>
+            <id>JOSM-central</id>
+            <url>https://josm.openstreetmap.de/nexus/content/repositories/central/</url>
+        </repository>
+    </repositories>
+    <pluginRepositories>
+        <pluginRepository>
+            <id>JOSM-central</id>
+            <url>https://josm.openstreetmap.de/nexus/content/repositories/central/</url>
+        </pluginRepository>
+    </pluginRepositories>
+
     <dependencyManagement>
         <dependencies>
@@ -95,5 +109,5 @@
             <groupId>com.github.spotbugs</groupId>
             <artifactId>spotbugs-annotations</artifactId>
-            <version>4.8.3</version>
+            <version>${version.maven.spotbugs}</version>
             <scope>test</scope>
         </dependency>
@@ -143,5 +157,5 @@
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-jar-plugin</artifactId>
-                <version>3.3.0</version>
+                <version>3.4.2</version>
                 <configuration>
                     <outputDirectory>releases/${project.version}</outputDirectory>
@@ -151,5 +165,5 @@
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-source-plugin</artifactId>
-                <version>3.3.0</version>
+                <version>3.3.1</version>
                 <configuration>
                     <outputDirectory>releases/${project.version}</outputDirectory>
@@ -168,5 +182,5 @@
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.11.0</version>
+                <version>3.13.0</version>
                 <executions>
                     <execution>
@@ -213,5 +227,5 @@
                 <groupId>com.github.spotbugs</groupId>
                 <artifactId>spotbugs-maven-plugin</artifactId>
-                <version>${version.maven.spotbugs}</version>
+                <version>4.8.6.2</version>
                 <configuration>
                     <xmlOutput>true</xmlOutput>
@@ -234,5 +248,5 @@
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-checkstyle-plugin</artifactId>
-                <version>3.3.1</version>
+                <version>3.4.0</version>
                 <configuration>
                     <configLocation>${project.basedir}/tools/checkstyle/jmapviewer_checks.xml</configLocation>
@@ -242,4 +256,11 @@
                     <excludes>module-info.java</excludes>
                 </configuration>
+                <dependencies>
+                    <dependency>
+                        <groupId>com.puppycrawl.tools</groupId>
+                        <artifactId>checkstyle</artifactId>
+                        <version>${version.maven.checkstyle}</version>
+                    </dependency>
+                </dependencies>
                 <executions>
                     <execution>
@@ -252,4 +273,24 @@
                 </executions>
             </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-enforcer-plugin</artifactId>
+                <version>3.5.0</version>
+                <executions>
+                    <execution>
+                        <id>enforce-maven</id>
+                        <goals>
+                            <goal>enforce</goal>
+                        </goals>
+                        <configuration>
+                            <rules>
+                                <requireMavenVersion>
+                                    <version>3.6.3</version>
+                                </requireMavenVersion>
+                            </rules>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
         </plugins>
     </build>
@@ -260,5 +301,5 @@
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-surefire-report-plugin</artifactId>
-                <version>3.2.3</version>
+                <version>3.3.1</version>
             </plugin>
             <plugin>
