diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 23b8a52..76bd869 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -1,3 +1,17 @@
+# 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.
 name: Github CI
 
 on: [push, pull_request]
diff --git a/arthur-maven-plugin/src/main/java/org/apache/geronimo/arthur/maven/mojo/DockerMojo.java b/arthur-maven-plugin/src/main/java/org/apache/geronimo/arthur/maven/mojo/DockerMojo.java
index cca81f0..1b12d19 100644
--- a/arthur-maven-plugin/src/main/java/org/apache/geronimo/arthur/maven/mojo/DockerMojo.java
+++ b/arthur-maven-plugin/src/main/java/org/apache/geronimo/arthur/maven/mojo/DockerMojo.java
@@ -13,7 +13,8 @@
  * 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 org.apache.geronimo.arthur.maven.mojo;
+ */
+package org.apache.geronimo.arthur.maven.mojo;
 
 import com.google.cloud.tools.jib.api.Containerizer;
 import com.google.cloud.tools.jib.api.DockerDaemonImage;
diff --git a/pom.xml b/pom.xml
index c8e39b3..98bc019 100644
--- a/pom.xml
+++ b/pom.xml
@@ -166,6 +166,7 @@
             <exclude>**/crest-commands.txt</exclude>
             <exclude>**/*.html</exclude>
             <exclude>**/favicon/*</exclude>
+            <exclude>.site-content/**</exclude>
           </excludes>
         </configuration>
         <executions>
