diff --git a/src/main/java/org/apache/maven/plugins/source/AbstractSourceJarMojo.java b/src/main/java/org/apache/maven/plugins/source/AbstractSourceJarMojo.java
index 4d6c9ea..772fcf1 100644
--- a/src/main/java/org/apache/maven/plugins/source/AbstractSourceJarMojo.java
+++ b/src/main/java/org/apache/maven/plugins/source/AbstractSourceJarMojo.java
@@ -97,11 +97,14 @@
     /**
      * The archive configuration to use. See <a href="http://maven.apache.org/shared/maven-archiver/index.html">Maven
      * Archiver Reference</a>.
-     *
+     * <br/>
+     * <b>Note: Since 3.0.0 the resulting archives contain a maven descriptor. If you need to suppress the
+     * generation of the maven descriptor you can simply achieve this by using the 
+     * <a href="http://maven.apache.org/shared/maven-archiver/index.html#archive">archiver configuration</a>.</b>.
      * @since 2.1
      */
     @Parameter
-    private MavenArchiveConfiguration archive = new SourceArchiveConfiguration();
+    private MavenArchiveConfiguration archive = new MavenArchiveConfiguration();
 
     /**
      * Path to the default MANIFEST file to use. It will be used if <code>useDefaultManifestFile</code> is set to
diff --git a/src/main/java/org/apache/maven/plugins/source/SourceArchiveConfiguration.java b/src/main/java/org/apache/maven/plugins/source/SourceArchiveConfiguration.java
deleted file mode 100644
index 1974930..0000000
--- a/src/main/java/org/apache/maven/plugins/source/SourceArchiveConfiguration.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.apache.maven.plugins.source;
-
-/*
- * 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.
- */
-
-import org.apache.maven.archiver.MavenArchiveConfiguration;
-
-/**
- * For backwards compatibility, a custom archiver configuration that defaults to not including the Maven descriptor.
- *
- * @see <a href="https://issues.apache.org/browse/MSOURCES-81">MSOURCES-81</a>
- * @since 2.4
- */
-public class SourceArchiveConfiguration
-    extends MavenArchiveConfiguration
-{
-    public SourceArchiveConfiguration()
-    {
-        setAddMavenDescriptor( false );
-    }
-}
