Index: /applications/editors/josm/plugins/mapillary/.eclipse-pmd
===================================================================
--- /applications/editors/josm/plugins/mapillary/.eclipse-pmd	(revision 32063)
+++ /applications/editors/josm/plugins/mapillary/.eclipse-pmd	(revision 32063)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<eclipse-pmd xmlns="http://acanda.ch/eclipse-pmd/0.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://acanda.ch/eclipse-pmd/0.8 http://acanda.ch/eclipse-pmd/eclipse-pmd-0.8.xsd">
+  <analysis enabled="true" />
+  <rulesets>
+    <ruleset name="Ruleset for josm-mapillary-plugin" ref=".settings/pmd-ruleset.xml" refcontext="project" />
+  </rulesets>
+</eclipse-pmd>
Index: /applications/editors/josm/plugins/mapillary/.project
===================================================================
--- /applications/editors/josm/plugins/mapillary/.project	(revision 32062)
+++ /applications/editors/josm/plugins/mapillary/.project	(revision 32063)
@@ -2,17 +2,21 @@
 <projectDescription>
 	<name>JOSM-Mapillary</name>
-	<comment></comment>
-	<projects>
-	</projects>
+	<comment>Allows the user to work with pictures hosted at mapillary.com</comment>
+	<projects/>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.sonarlint.eclipse.core.sonarlintNature</nature>
+		<nature>ch.acanda.eclipse.pmd.builder.PMDNature</nature>
+	</natures>
 	<buildSpec>
 		<buildCommand>
 			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
+			<arguments/>
+		</buildCommand>
+		<buildCommand>
+			<name>ch.acanda.eclipse.pmd.builder.PMDBuilder</name>
+			<arguments/>
 		</buildCommand>
 	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.sonarlint.eclipse.core.sonarlintNature</nature>
-	</natures>
+	<linkedResources/>
 </projectDescription>
Index: /applications/editors/josm/plugins/mapillary/.settings/pmd-ruleset.xml
===================================================================
--- /applications/editors/josm/plugins/mapillary/.settings/pmd-ruleset.xml	(revision 32063)
+++ /applications/editors/josm/plugins/mapillary/.settings/pmd-ruleset.xml	(revision 32063)
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<ruleset name="Ruleset for josm-mapillary-plugin"
+    xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
+  <description>
+    This ruleset checks some rules that you should normally follow for the josm-mapillary-plugin.
+  </description>
+  <rule ref="rulesets/java/basic.xml"/>
+  <rule ref="rulesets/java/braces.xml">
+    <exclude name="IfStmtsMustUseBraces"/>
+  </rule>
+  <rule ref="rulesets/java/clone.xml"/>
+
+  <rule ref="rulesets/java/controversial.xml/UnnecessaryConstructor"/>
+  <rule ref="rulesets/java/controversial.xml/AssignmentInOperand"/>
+  <rule ref="rulesets/java/controversial.xml/DontImportSun"/>
+  <rule ref="rulesets/java/controversial.xml/SuspiciousOctalEscape"/>
+  <rule ref="rulesets/java/controversial.xml/UnnecessaryParentheses"/>
+  <rule ref="rulesets/java/controversial.xml/DefaultPackage"/>
+
+  <rule ref="rulesets/java/coupling.xml">
+    <exclude name="LoosePackageCoupling" />
+    <exclude name="LawOfDemeter" />
+  </rule>
+  <rule ref="rulesets/java/design.xml">
+    <exclude name="AvoidSynchronizedAtMethodLevel" />
+    <exclude name="ConfusingTernary" />
+  </rule>
+  <rule ref="rulesets/java/empty.xml"/>
+  <rule ref="rulesets/java/finalizers.xml"/>
+  <rule ref="rulesets/java/imports.xml"/>
+  <rule ref="rulesets/java/optimizations.xml">
+    <exclude name="LocalVariableCouldBeFinal" />
+    <exclude name="MethodArgumentCouldBeFinal" />
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml"/>
+  <rule ref="rulesets/java/strings.xml"/>
+  <rule ref="rulesets/java/sunsecure.xml"/>
+  <rule ref="rulesets/java/typeresolution.xml"/>
+  <rule ref="rulesets/java/unnecessary.xml"/>
+  <rule ref="rulesets/java/unusedcode.xml"/>
+</ruleset>
Index: /applications/editors/josm/plugins/mapillary/build.gradle
===================================================================
--- /applications/editors/josm/plugins/mapillary/build.gradle	(revision 32062)
+++ /applications/editors/josm/plugins/mapillary/build.gradle	(revision 32063)
@@ -3,4 +3,5 @@
 apply plugin: 'jacoco'
 apply plugin: 'java'
+apply plugin: 'pmd'
 apply plugin: 'project-report'
 
@@ -64,6 +65,18 @@
   project {
     name = 'JOSM-Mapillary'
-    natures 'org.sonarlint.eclipse.core.sonarlintNature'
+    comment = property('plugin.description')
+    natures 'org.sonarlint.eclipse.core.sonarlintNature', 'ch.acanda.eclipse.pmd.builder.PMDNature'
+    buildCommand 'ch.acanda.eclipse.pmd.builder.PMDBuilder'
   }
+}
+eclipseClasspath.dependsOn cleanEclipseClasspath
+eclipseProject.dependsOn cleanEclipseProject
+tasks.eclipse.dependsOn = ['eclipseClasspath', 'eclipseProject']
+
+pmd {
+  toolVersion '5.4.1'
+  ignoreFailures true
+  targetJdk sourceCompatibility
+  ruleSetFiles = files('.settings/pmd-ruleset.xml')
 }
 
@@ -79,6 +92,6 @@
   toolVersion = "3.0.1"
   ignoreFailures = true
-  effort = "min"
-  reportLevel = "high"
+  effort = "max"
+  reportLevel = "low"
 }
 tasks.withType(FindBugs) {
