Index: src/test/java/org/apache/maven/plugin/eclipse/EclipsePluginTest.java
===================================================================
--- src/test/java/org/apache/maven/plugin/eclipse/EclipsePluginTest.java	(revision 413051)
+++ src/test/java/org/apache/maven/plugin/eclipse/EclipsePluginTest.java	(working copy)
@@ -183,4 +183,14 @@
         testProject( "project-19" );
     }
 
+    /**
+     * Test excludes.
+     * @throws Exception any exception thrown during test
+     */
+    public void testProject20()
+        throws Exception
+    {
+        testProject( "project-20" );
+    }
+
 }
Index: src/test/projects/project-20/settings
===================================================================
--- src/test/projects/project-20/settings	(revision 0)
+++ src/test/projects/project-20/settings	(revision 0)
@@ -0,0 +1,3 @@
+#Fri Aug 26 21:33:13 CEST 2005
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.4
+eclipse.preferences.version=1
Index: src/test/projects/project-20/classpath
===================================================================
--- src/test/projects/project-20/classpath	(revision 0)
+++ src/test/projects/project-20/classpath	(revision 0)
@@ -0,0 +1,4 @@
+<classpath>
+  <classpathentry kind="output" path="target/classes"/>
+  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+</classpath>
Index: src/test/projects/project-20/project
===================================================================
--- src/test/projects/project-20/project	(revision 0)
+++ src/test/projects/project-20/project	(revision 0)
@@ -0,0 +1,14 @@
+<projectDescription>
+  <name>maven-eclipse-plugin-test-project-20</name>
+  <comment/>
+  <projects/>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+      <arguments/>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+  </natures>
+</projectDescription>
Index: src/test/projects/project-20/pom.xml
===================================================================
--- src/test/projects/project-20/pom.xml	(revision 0)
+++ src/test/projects/project-20/pom.xml	(revision 0)
@@ -0,0 +1,43 @@
+<?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-project-20</artifactId>
+  <version>88.0</version>
+  <name>Maven</name>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <target>1.4</target>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-eclipse-plugin</artifactId>
+        <configuration>
+          <excludes>
+          	<exclude>junit/junit</exclude>
+          </excludes>
+          <wtpversion>R7</wtpversion>
+          <projectnatures>
+            <projectnature>org.eclipse.jdt.core.javanature</projectnature>
+          </projectnatures>
+          <buildcommands>
+            <buildcommand>org.eclipse.jdt.core.javabuilder</buildcommand>
+          </buildcommands>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
Index: src/main/java/org/apache/maven/plugin/ide/AbstractIdeSupportMojo.java
===================================================================
--- src/main/java/org/apache/maven/plugin/ide/AbstractIdeSupportMojo.java	(revision 413051)
+++ src/main/java/org/apache/maven/plugin/ide/AbstractIdeSupportMojo.java	(working copy)
@@ -154,6 +154,22 @@
     protected List reactorProjects;
 
     /**
+     * List of dependencies to exclude from eclipse classpath.
+     * 
+     * <pre>
+     * &lt;excludes&gt;
+     *    &lt;exclude&gt;
+     *      &lt;groupId&gt;javax.servlet&lt;groupId&gt;
+     *      &lt;groupId&gt;servlet-spec&lt;groupId&gt;
+     *    &lt;/exclude&gt;
+     * &lt;/excludes&gt;
+     * </pre>
+     * 
+     * @parameter
+     */
+    private List excludes;
+
+    /**
      * Enables/disables the downloading of source attachments. Defaults to false.
      * @parameter expression="${downloadSources}"
      */
@@ -327,6 +343,22 @@
     }
 
     /**
+	 * @return Returns the excludes.
+	 */
+	public List getExcludes()
+	{
+		return excludes;
+	}
+
+	/**
+	 * @param excludes The excludes to set.
+	 */
+	public void setExcludes(List excludes)
+	{
+		this.excludes = excludes;
+	}
+
+	/**
      * return <code>false</code> if projects available in a reactor build should be considered normal dependencies,
      * <code>true</code> if referenced project will be linked and not need artifact resolution.
      * @return <code>true</code> if referenced project will be linked and not need artifact resolution
@@ -478,8 +510,19 @@
                     }
                 }
 
-                if ( !isReactorProject || emittedReactorProjectId.add( art.getGroupId() + '-' + art.getArtifactId() ) )
+                boolean includeArtifact = true;
+                if (excludes != null)
                 {
+                	String artifactFullId = art.getGroupId() + "/" + art.getArtifactId();
+                	if (excludes.contains(artifactFullId))
+                	{
+                		getLog().info("excluded: " + artifactFullId);
+                		includeArtifact = false;
+                	}
+                }
+                
+                if (includeArtifact && ( !isReactorProject || emittedReactorProjectId.add( art.getGroupId() + '-' + art.getArtifactId() ) ) )
+                {
 
                     IdeDependency dep = new IdeDependency( art.getGroupId(), art.getArtifactId(), art.getVersion(),
                                                            isReactorProject, Artifact.SCOPE_TEST
Index: src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java
===================================================================
--- src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java	(revision 413051)
+++ src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java	(working copy)
@@ -97,6 +97,22 @@
      * natures are added. Natures added using this property <strong>replace</strong> the default list.
      * 
      * <pre>
+     * &lt;excludes&gt;
+     *    &lt;exclude&gt;junit/junit&lt;/projectnature&gt;
+     *    &lt;exclude&gt;javax/servlet-api&lt;/projectnature&gt;
+     * &lt;/excludes&gt;
+     * </pre>
+     * 
+     * @parameter
+     */
+    private List excludes;
+
+    /**
+     * List of eclipse project natures. By default the
+     * <code>org.eclipse.jdt.core.javanature</code> nature plus the needed WTP
+     * natures are added. Natures added using this property <strong>replace</strong> the default list.
+     * 
+     * <pre>
      * &lt;projectnatures&gt;
      *    &lt;projectnature&gt;org.eclipse.jdt.core.javanature&lt;/projectnature&gt;
      *    &lt;projectnature&gt;org.eclipse.wst.common.modulecore.ModuleCoreNature&lt;/projectnature&gt;
@@ -291,6 +307,25 @@
     }
 
     /**
+     * Getter for <code>excludes</code>.
+	 * @return Returns the excludes.
+	 */
+	public List getExcludes()
+	{
+		return excludes;
+	}
+
+	/**
+     * Setter for <code>excludes</code>.
+	 * @param excludes The excludes to set.
+	 */
+	public void setExcludes(List excludes)
+	{
+		getLog().info("excludes: " + excludes.toString());
+		this.excludes = excludes;
+	}
+
+	/**
      * Getter for <code>projectnatures</code>.
      * @return Returns the projectnatures.
      */
