Index: src/test/java/org/apache/maven/plugin/eclipse/it/EclipsePluginIT.java
===================================================================
--- src/test/java/org/apache/maven/plugin/eclipse/it/EclipsePluginIT.java	(revision 758482)
+++ src/test/java/org/apache/maven/plugin/eclipse/it/EclipsePluginIT.java	(working copy)
@@ -630,6 +630,17 @@
         testProject( "project-51-MECLIPSE-415" );
     }    
     
+    /**
+     * [MECLIPSE-104]  Add the ability to specify source exclusions
+     * 
+     * @throws Exception
+     */
+    public void testMeclipse104()
+        throws Exception
+    {
+        testProject( "MECLIPSE-104" );
+    }
+     
     public void testJeeSimple()
         throws Exception
     {
Index: src/test/resources/projects/MECLIPSE-104/expected/.classpath
===================================================================
--- src/test/resources/projects/MECLIPSE-104/expected/.classpath	(revision 0)
+++ src/test/resources/projects/MECLIPSE-104/expected/.classpath	(revision 0)
@@ -0,0 +1,5 @@
+<classpath>
+  <classpathentry kind="src" path="src/main/java" excluding="**/.svn/**"/>
+  <classpathentry kind="output" path="target/classes"/>
+  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+</classpath>
Index: src/test/resources/projects/MECLIPSE-104/expected/.project
===================================================================
--- src/test/resources/projects/MECLIPSE-104/expected/.project	(revision 0)
+++ src/test/resources/projects/MECLIPSE-104/expected/.project	(revision 0)
@@ -0,0 +1,13 @@
+<projectDescription>
+  <name>maven-eclipse-plugin-test-MECLIPSE-104</name>
+  <comment/>
+  <projects/>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+  </natures>
+</projectDescription>
\ No newline at end of file
Index: src/test/resources/projects/MECLIPSE-104/pom.xml
===================================================================
--- src/test/resources/projects/MECLIPSE-104/pom.xml	(revision 0)
+++ src/test/resources/projects/MECLIPSE-104/pom.xml	(revision 0)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>eclipse</groupId>
+    <artifactId>maven-eclipse-plugin-test-MECLIPSE-104</artifactId>
+    <version>99.0</version>
+    <name>Maven</name>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-eclipse-plugin</artifactId>
+                <version>test</version>
+                <configuration>
+                    <srcExclusions>
+                        <srcExclusion>**/.svn/**</srcExclusion>
+                    </srcExclusions>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
Index: src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java
===================================================================
--- src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java	(revision 758482)
+++ src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java	(working copy)
@@ -507,6 +507,16 @@
      */
     private String ajdtVersion;
 
+    /**
+     * List of exclusions for the source classpath
+     * [MECLIPSE-104]
+      * 
+      * @since 2.7
+      * @parameter
+      */
+    private List srcExclusions;
+
+    
     protected final boolean isJavaProject()
     {
         return isJavaProject;
@@ -1480,6 +1490,18 @@
                                     String output )
         throws MojoExecutionException
     {
+
+        StringBuffer exclusions = null;
+        if(srcExclusions != null) {
+            for(Iterator srcEi = srcExclusions.iterator(); srcEi.hasNext(); ) {
+                String srcE = (String)srcEi.next();
+                if(exclusions == null)
+                    exclusions=new StringBuffer(srcE);
+                else
+                    exclusions.append("|").append(srcE);
+            }
+        }        
+
         for ( Iterator it = sourceRoots.iterator(); it.hasNext(); )
         {
 
@@ -1487,11 +1509,14 @@
 
             if ( sourceRootFile.isDirectory() )
             {
+                // XXX: when is !projectBaseDir.equals( basedir ) true?
+                // it causes '/' and ':' in the source route to be replaced with '-' - when is that useful?
                 String sourceRoot =
                     IdeUtils.toRelativeAndFixSeparator( projectBaseDir, sourceRootFile,
                                                         !projectBaseDir.equals( basedir ) );
-
-                directories.add( new EclipseSourceDir( sourceRoot, output, false, test, null, null, false ) );
+                
+                directories.add( new EclipseSourceDir( sourceRoot, output, false, test, null, 
+                                                       exclusions == null ? null : exclusions.toString(), false ) );
             }
         }
     }

