Index: src/main/java/org/apache/maven/artifact/Artifact.java =================================================================== --- src/main/java/org/apache/maven/artifact/Artifact.java (revision 348837) +++ src/main/java/org/apache/maven/artifact/Artifact.java (working copy) @@ -156,6 +156,8 @@ void setAvailableVersions( List versions ); boolean isOptional(); + + void setOptional( boolean optional ); ArtifactVersion getSelectedVersion() throws OverConstrainedVersionException; Index: src/main/java/org/apache/maven/artifact/DefaultArtifact.java =================================================================== --- src/main/java/org/apache/maven/artifact/DefaultArtifact.java (revision 348837) +++ src/main/java/org/apache/maven/artifact/DefaultArtifact.java (working copy) @@ -529,6 +529,11 @@ { return optional; } + + public void setOptional( boolean optional ) + { + this.optional = optional; + } public ArtifactVersion getSelectedVersion() throws OverConstrainedVersionException Index: src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java =================================================================== --- src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java (revision 348837) +++ src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java (working copy) @@ -122,6 +122,7 @@ { node.getArtifact().setScope( artifact.getScope() ); } + node.getArtifact().setOptional( artifact.isOptional() ); } List previousNodes = (List) resolvedArtifacts.get( key );