Index: src/main/java/org/apache/maven/plugin/jar/AbstractJarMojo.java
===================================================================
--- src/main/java/org/apache/maven/plugin/jar/AbstractJarMojo.java	(Revision 660066)
+++ src/main/java/org/apache/maven/plugin/jar/AbstractJarMojo.java	(Arbeitskopie)
@@ -19,6 +19,8 @@
  * under the License.
  */
 
+import java.io.BufferedReader;
+import java.io.IOException;
 import org.apache.maven.archiver.MavenArchiveConfiguration;
 import org.apache.maven.archiver.MavenArchiver;
 import org.apache.maven.plugin.AbstractMojo;
@@ -28,6 +30,10 @@
 import org.codehaus.plexus.archiver.jar.JarArchiver;
 
 import java.io.File;
+import java.io.FileReader;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 
 /**
  * Base class for creating a jar from project classes.
@@ -58,6 +64,22 @@
     private String[] excludes;
 
     /**
+     * File containing a list of files to include. Specified as fileset patterns.
+     *
+     * @parameter
+     * @since 2.3
+     */
+    private File includesFile;
+
+    /**
+     * File containing a list of files to exclude. Specified as fileset patterns.
+     *
+     * @parameter
+     * @since 2.3
+     */
+    private File excludesFile;
+
+    /**
      * Directory containing the generated JAR.
      *
      * @parameter expression="${project.build.directory}"
@@ -244,21 +266,53 @@
         }
     }
 
-    private String[] getIncludes()
+    private String[] getIncludes() throws IOException
     {
+        final List includesList = new ArrayList();
+
         if ( includes != null && includes.length > 0 )
         {
-            return includes;
+            includesList.addAll( Arrays.asList( includes ) );
         }
-        return DEFAULT_INCLUDES;
+
+        if ( includesFile != null )
+        {
+            String line = null;
+            final BufferedReader r = new BufferedReader( new FileReader( includesFile ) );
+            while ( ( line = r.readLine() ) != null )
+            {
+                includesList.add( line );
+            }
+        }
+
+        return includesList.size() == 0
+            ? DEFAULT_INCLUDES
+            : ( String[] ) includesList.toArray( new String[ includesList.size() ] );
+
     }
 
-    private String[] getExcludes()
+    private String[] getExcludes() throws IOException
     {
+        final List excludesList = new ArrayList();
+
         if ( excludes != null && excludes.length > 0 )
         {
-            return excludes;
+            excludesList.addAll( Arrays.asList( excludes ) );
         }
-        return DEFAULT_EXCLUDES;
+
+        if ( excludesFile != null )
+        {
+            String line = null;
+            final BufferedReader r = new BufferedReader( new FileReader( excludesFile ) );
+            while ( ( line = r.readLine() ) != null )
+            {
+                excludesList.add( line );
+            }
+        }
+
+        return excludesList.size() == 0
+            ? DEFAULT_EXCLUDES
+            : ( String[] ) excludesList.toArray( new String[ excludesList.size() ] );
+
     }
 }

