You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by br...@apache.org on 2005/07/28 09:33:59 UTC
svn commit: r225723 - in
/maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse:
EclipsePlugin.java EclipseWriter.java
Author: brett
Date: Thu Jul 28 00:33:56 2005
New Revision: 225723
URL: http://svn.apache.org/viewcvs?rev=225723&view=rev
Log:
PR: MNG-549
Submitted by: Kenney Westerhof
make eclipse plugin reactor aware
Modified:
maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java
maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipseWriter.java
Modified: maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java?rev=225723&r1=225722&r2=225723&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java (original)
+++ maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java Thu Jul 28 00:33:56 2005
@@ -22,6 +22,7 @@
import org.apache.maven.project.MavenProject;
import java.io.File;
+import java.util.List;
/**
* A Maven2 plugin which integrates the use of Maven2 with Eclipse.
@@ -58,6 +59,13 @@
*/
private ArtifactRepository localRepository;
+ /**
+ * @parameter expression="${reactorProjects}"
+ * @required
+ * @readonly
+ */
+ private List reactorProjects;
+
public EclipsePlugin()
{
eclipseWriter = new EclipseWriter();
@@ -97,7 +105,7 @@
executedProject = project;
}
- eclipseWriter.write( project, executedProject );
+ eclipseWriter.write( project, executedProject, reactorProjects );
}
catch ( EclipsePluginException e )
{
Modified: maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipseWriter.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipseWriter.java?rev=225723&r1=225722&r2=225723&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipseWriter.java (original)
+++ maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipseWriter.java Thu Jul 28 00:33:56 2005
@@ -46,7 +46,7 @@
this.localRepository = localRepository;
}
- public void write( MavenProject project, MavenProject executedProject )
+ public void write( MavenProject project, MavenProject executedProject, List reactorProjects )
throws EclipsePluginException
{
File basedir = project.getFile().getParentFile();
@@ -61,7 +61,7 @@
writeEclipseProject( basedir, project, map );
- writeEclipseClasspath( basedir, project, executedProject, map );
+ writeEclipseClasspath( basedir, project, executedProject, map, reactorProjects );
System.out.println( "Wrote Eclipse project for " + project.getArtifactId() + " to " + basedir.getAbsolutePath() );
}
@@ -155,7 +155,7 @@
// .classpath
// ----------------------------------------------------------------------
- protected void writeEclipseClasspath( File basedir, MavenProject project, MavenProject executedProject, Map map )
+ protected void writeEclipseClasspath( File basedir, MavenProject project, MavenProject executedProject, Map map, List reactorProjects )
throws EclipsePluginException
{
FileWriter w;
@@ -235,7 +235,7 @@
{
Artifact artifact = (Artifact) it.next();
- addDependency( writer, artifact );
+ addDependency( writer, artifact, reactorProjects );
}
writer.endElement();
@@ -316,24 +316,57 @@
}
}
- private void addDependency( XMLWriter writer, Artifact artifact )
+ private void addDependency( XMLWriter writer, Artifact artifact, List reactorProjects )
{
- File path = artifact.getFile();
-
+ String path = getProjectPath( reactorProjects, artifact );
+
+ String kind = path == null ? "var" : "src";
+
+ // fall-through when no local project could be found in the reactor
if ( path == null )
{
- System.err.println( "The artifacts path was null. Artifact id: " + artifact.getId() );
+ File artifactPath = artifact.getFile();
- return;
+ if ( artifactPath == null )
+ {
+ System.err.println( "The artifacts path was null. Artifact id: " + artifact.getId() );
+
+ return;
+ }
+
+ path = "M2_REPO/" + toRelative( localRepository, artifactPath.getPath() );
}
writer.startElement( "classpathentry" );
- writer.addAttribute( "kind", "var" );
+ writer.addAttribute( "kind", kind );
- writer.addAttribute( "path", "M2_REPO/" + toRelative( localRepository, path.getPath() ) );
+ writer.addAttribute( "path", path );
writer.endElement();
+ }
+
+ private String getProjectPath( List reactorProjects, Artifact artifact )
+ {
+ if ( reactorProjects == null )
+ {
+ return null; // we're a single project
+ }
+
+ for (Iterator it = reactorProjects.iterator(); it.hasNext(); )
+ {
+ MavenProject project = (MavenProject) it.next();
+
+ if ( project.getGroupId().equals( artifact.getGroupId() )
+ && project.getArtifactId().equals( artifact.getArtifactId() )
+ && project.getVersion().equals( artifact.getVersion() )
+ )
+ {
+ return "/" + project.getArtifactId();
+ }
+ }
+
+ return null;
}
private void close( Writer closeable )
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org