diff --git a/build.gradle.kts b/build.gradle.kts
index 7dd284d..5c9905f 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -549,7 +549,6 @@
     compileOnly("org.slf4j:jcl-over-slf4j:${slf4jVersion}") // FIXME: This seems to be unused
     compileOnly("commons-logging:commons-logging:1.1.1") // FIXME: This seems to be unused
     compileOnly("org.zeroturnaround:javarebel-sdk:1.2.2")
-    compileOnly("com.google.code.findbugs:annotations:3.0.0")
     compileOnly("org.dom4j:dom4j:2.1.3")
 
     "jsp20CompileOnly"("javax.servlet.jsp:jsp-api:2.0")
@@ -567,6 +566,7 @@
     "jython25CompileOnly"(sourceSets["jython20"].output)
     "jython25CompileOnly"("org.python:jython:2.5.0")
 
+    testImplementation("com.google.code.findbugs:annotations:3.0.0")
     testImplementation("junit:junit:4.12")
     testImplementation("org.hamcrest:hamcrest-library:1.3")
     testImplementation("ch.qos.logback:logback-classic:1.1.2")
diff --git a/freemarker-core/src/main/java/freemarker/core/BuiltInsForNodes.java b/freemarker-core/src/main/java/freemarker/core/BuiltInsForNodes.java
index ff75b6e..cb863ba 100644
--- a/freemarker-core/src/main/java/freemarker/core/BuiltInsForNodes.java
+++ b/freemarker-core/src/main/java/freemarker/core/BuiltInsForNodes.java
@@ -21,7 +21,6 @@
 
 import java.util.List;
 
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import freemarker.ext.dom._ExtDomApi;
 import freemarker.template.SimpleScalar;
 import freemarker.template.SimpleSequence;
diff --git a/freemarker-core/src/main/java/freemarker/core/Environment.java b/freemarker-core/src/main/java/freemarker/core/Environment.java
index 66f1214..a24c333 100644
--- a/freemarker-core/src/main/java/freemarker/core/Environment.java
+++ b/freemarker-core/src/main/java/freemarker/core/Environment.java
@@ -41,7 +41,6 @@
 import java.util.Set;
 import java.util.TimeZone;
 
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import freemarker.cache.TemplateNameFormat;
 import freemarker.cache._CacheAPI;
 import freemarker.ext.beans.BeansWrapper;
diff --git a/freemarker-core/src/main/java/freemarker/core/ISOLikeTemplateDateFormat.java b/freemarker-core/src/main/java/freemarker/core/ISOLikeTemplateDateFormat.java
index aeff3c8..9eb50ab 100644
--- a/freemarker-core/src/main/java/freemarker/core/ISOLikeTemplateDateFormat.java
+++ b/freemarker-core/src/main/java/freemarker/core/ISOLikeTemplateDateFormat.java
@@ -22,7 +22,6 @@
 import java.util.Date;
 import java.util.TimeZone;
 
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import freemarker.template.TemplateDateModel;
 import freemarker.template.TemplateModelException;
 import freemarker.template.utility.DateUtil;
diff --git a/freemarker-core/src/main/java/freemarker/core/SuppressFBWarnings.java b/freemarker-core/src/main/java/freemarker/core/SuppressFBWarnings.java
new file mode 100644
index 0000000..14b8042
--- /dev/null
+++ b/freemarker-core/src/main/java/freemarker/core/SuppressFBWarnings.java
@@ -0,0 +1,29 @@
+/*
+ * 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.
+ */
+
+package freemarker.core;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+@Retention(RetentionPolicy.CLASS)
+@interface SuppressFBWarnings {
+    String[] value() default {};
+    String justification() default "";
+}
diff --git a/freemarker-core/src/main/java/freemarker/core/UnifiedCall.java b/freemarker-core/src/main/java/freemarker/core/UnifiedCall.java
index 5f2d0ba..ec877aa 100644
--- a/freemarker-core/src/main/java/freemarker/core/UnifiedCall.java
+++ b/freemarker-core/src/main/java/freemarker/core/UnifiedCall.java
@@ -27,7 +27,6 @@
 import java.util.List;
 import java.util.Map;
 
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import freemarker.template.EmptyMap;
 import freemarker.template.TemplateDirectiveModel;
 import freemarker.template.TemplateException;
diff --git a/freemarker-core/src/main/java/freemarker/debug/impl/RmiDebuggedEnvironmentImpl.java b/freemarker-core/src/main/java/freemarker/debug/impl/RmiDebuggedEnvironmentImpl.java
index 8719fcb..3bbb3e3 100644
--- a/freemarker-core/src/main/java/freemarker/debug/impl/RmiDebuggedEnvironmentImpl.java
+++ b/freemarker-core/src/main/java/freemarker/debug/impl/RmiDebuggedEnvironmentImpl.java
@@ -32,7 +32,6 @@
 import java.util.List;
 import java.util.Set;
 
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import freemarker.cache.CacheStorage;
 import freemarker.cache.SoftCacheStorage;
 import freemarker.core.Configurable;
diff --git a/freemarker-core/src/main/java/freemarker/debug/impl/RmiDebuggerService.java b/freemarker-core/src/main/java/freemarker/debug/impl/RmiDebuggerService.java
index d889af5..72ca88f 100644
--- a/freemarker-core/src/main/java/freemarker/debug/impl/RmiDebuggerService.java
+++ b/freemarker-core/src/main/java/freemarker/debug/impl/RmiDebuggerService.java
@@ -35,7 +35,6 @@
 import java.util.List;
 import java.util.Map;
 
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import freemarker.core.DebugBreak;
 import freemarker.core.Environment;
 import freemarker.core.TemplateElement;
diff --git a/freemarker-core/src/main/java/freemarker/debug/impl/SuppressFBWarnings.java b/freemarker-core/src/main/java/freemarker/debug/impl/SuppressFBWarnings.java
new file mode 100644
index 0000000..3059b0c
--- /dev/null
+++ b/freemarker-core/src/main/java/freemarker/debug/impl/SuppressFBWarnings.java
@@ -0,0 +1,29 @@
+/*
+ * 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.
+ */
+
+package freemarker.debug.impl;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+@Retention(RetentionPolicy.CLASS)
+@interface SuppressFBWarnings {
+    String[] value() default {};
+    String justification() default "";
+}
diff --git a/freemarker-core/src/main/java/freemarker/ext/beans/BeansModelCache.java b/freemarker-core/src/main/java/freemarker/ext/beans/BeansModelCache.java
index 99374b6..bc21c9b 100644
--- a/freemarker-core/src/main/java/freemarker/ext/beans/BeansModelCache.java
+++ b/freemarker-core/src/main/java/freemarker/ext/beans/BeansModelCache.java
@@ -24,7 +24,6 @@
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import freemarker.ext.util.ModelCache;
 import freemarker.ext.util.ModelFactory;
 import freemarker.template.TemplateModel;
diff --git a/freemarker-core/src/main/java/freemarker/ext/beans/OverloadedMethodsSubset.java b/freemarker-core/src/main/java/freemarker/ext/beans/OverloadedMethodsSubset.java
index ea7f091..10488f7 100644
--- a/freemarker-core/src/main/java/freemarker/ext/beans/OverloadedMethodsSubset.java
+++ b/freemarker-core/src/main/java/freemarker/ext/beans/OverloadedMethodsSubset.java
@@ -27,7 +27,6 @@
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import freemarker.template.TemplateModelException;
 import freemarker.template.utility.ClassUtil;
 import freemarker.template.utility.NullArgumentException;
diff --git a/freemarker-core/src/main/java/freemarker/ext/beans/SuppressFBWarnings.java b/freemarker-core/src/main/java/freemarker/ext/beans/SuppressFBWarnings.java
new file mode 100644
index 0000000..0174640
--- /dev/null
+++ b/freemarker-core/src/main/java/freemarker/ext/beans/SuppressFBWarnings.java
@@ -0,0 +1,29 @@
+/*
+ * 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.
+ */
+
+package freemarker.ext.beans;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+@Retention(RetentionPolicy.CLASS)
+@interface SuppressFBWarnings {
+    String[] value() default {};
+    String justification() default "";
+}
diff --git a/freemarker-core/src/main/java/freemarker/template/DefaultEnumerationAdapter.java b/freemarker-core/src/main/java/freemarker/template/DefaultEnumerationAdapter.java
index fdd0bea..a456440 100644
--- a/freemarker-core/src/main/java/freemarker/template/DefaultEnumerationAdapter.java
+++ b/freemarker-core/src/main/java/freemarker/template/DefaultEnumerationAdapter.java
@@ -22,7 +22,6 @@
 import java.util.Enumeration;
 import java.util.Iterator;
 
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import freemarker.ext.util.WrapperTemplateModel;
 import freemarker.template.utility.ObjectWrapperWithAPISupport;
 
diff --git a/freemarker-core/src/main/java/freemarker/template/DefaultIteratorAdapter.java b/freemarker-core/src/main/java/freemarker/template/DefaultIteratorAdapter.java
index 8f8d0c3..50305d0 100644
--- a/freemarker-core/src/main/java/freemarker/template/DefaultIteratorAdapter.java
+++ b/freemarker-core/src/main/java/freemarker/template/DefaultIteratorAdapter.java
@@ -22,7 +22,6 @@
 import java.io.Serializable;
 import java.util.Iterator;
 
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import freemarker.ext.util.WrapperTemplateModel;
 import freemarker.template.utility.ObjectWrapperWithAPISupport;
 
diff --git a/freemarker-core/src/main/java/freemarker/template/ObjectWrapper.java b/freemarker-core/src/main/java/freemarker/template/ObjectWrapper.java
index 71eea17..1739a64 100644
--- a/freemarker-core/src/main/java/freemarker/template/ObjectWrapper.java
+++ b/freemarker-core/src/main/java/freemarker/template/ObjectWrapper.java
@@ -22,7 +22,6 @@
 import java.util.Map;
 import java.util.ResourceBundle;
 
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import freemarker.ext.beans.BeansWrapper;
 import freemarker.ext.beans.BeansWrapperBuilder;
 import freemarker.ext.util.WrapperTemplateModel;
diff --git a/freemarker-core/src/main/java/freemarker/template/SuppressFBWarnings.java b/freemarker-core/src/main/java/freemarker/template/SuppressFBWarnings.java
new file mode 100644
index 0000000..b771c47
--- /dev/null
+++ b/freemarker-core/src/main/java/freemarker/template/SuppressFBWarnings.java
@@ -0,0 +1,29 @@
+/*
+ * 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.
+ */
+
+package freemarker.template;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+@Retention(RetentionPolicy.CLASS)
+@interface SuppressFBWarnings {
+    String[] value() default {};
+    String justification() default "";
+}
diff --git a/freemarker-jsp20/src/main/java/freemarker/ext/servlet/FreemarkerServlet.java b/freemarker-jsp20/src/main/java/freemarker/ext/servlet/FreemarkerServlet.java
index b9164ab..40ca7a4 100644
--- a/freemarker-jsp20/src/main/java/freemarker/ext/servlet/FreemarkerServlet.java
+++ b/freemarker-jsp20/src/main/java/freemarker/ext/servlet/FreemarkerServlet.java
@@ -40,7 +40,6 @@
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import freemarker.cache.ClassTemplateLoader;
 import freemarker.cache.FileTemplateLoader;
 import freemarker.cache.MultiTemplateLoader;
diff --git a/freemarker-jsp20/src/main/java/freemarker/ext/servlet/SuppressFBWarnings.java b/freemarker-jsp20/src/main/java/freemarker/ext/servlet/SuppressFBWarnings.java
new file mode 100644
index 0000000..45e9652
--- /dev/null
+++ b/freemarker-jsp20/src/main/java/freemarker/ext/servlet/SuppressFBWarnings.java
@@ -0,0 +1,29 @@
+/*
+ * 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.
+ */
+
+package freemarker.ext.servlet;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+@Retention(RetentionPolicy.CLASS)
+@interface SuppressFBWarnings {
+    String[] value() default {};
+    String justification() default "";
+}
