You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by ke...@apache.org on 2005/08/18 00:31:52 UTC
svn commit: r233267 -
/maven/components/trunk/maven-plugins/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipseWriter.java
Author: kenney
Date: Wed Aug 17 15:31:48 2005
New Revision: 233267
URL: http://svn.apache.org/viewcvs?rev=233267&view=rev
Log:
Added support for custom project settings. Currenly only source/target/compliance level
is supported. It is extracted from the maven-compiler-plugin configuration and only
written when the settings deviate from the default.
Modified:
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/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=233267&r1=233266&r2=233267&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 Wed Aug 17 15:31:48 2005
@@ -17,14 +17,18 @@
*/
import org.apache.maven.artifact.Artifact;
+import org.apache.maven.model.Plugin;
import org.apache.maven.model.Resource;
import org.apache.maven.plugin.logging.Log;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.util.xml.PrettyPrintXMLWriter;
import org.codehaus.plexus.util.xml.XMLWriter;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
@@ -33,6 +37,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
import java.util.Set;
/**
@@ -73,7 +78,85 @@
writeEclipseProject( projectBaseDir, outputDir, project, executedProject, referencedProjects, map );
+ writeEclipseSettings( projectBaseDir, outputDir, project, executedProject );
+
log.info( "Wrote Eclipse project for " + project.getArtifactId() + " to " + outputDir.getAbsolutePath() );
+ }
+
+
+ // ----------------------------------------------------------------------
+ // .settings/
+ // ----------------------------------------------------------------------
+
+ private void writeEclipseSettings(
+ File projectBaseDir, File outputDir, MavenProject project, MavenProject executedProject
+ )
+ throws EclipsePluginException
+ {
+
+ // check if it's necessary to create project specific settings
+
+ Properties coreSettings = new Properties();
+
+ // FIXME: need a better way to do this
+
+ for ( Iterator it = project.getModel().getBuild().getPlugins().iterator(); it.hasNext(); )
+ {
+ Plugin plugin = (Plugin) it.next();
+
+ if ( plugin.getArtifactId().equals("maven-compiler-plugin") )
+ {
+ Xpp3Dom o = (Xpp3Dom) plugin.getConfiguration();
+
+ String source = o.getChild( "source" ).getValue();
+
+ String target = o.getChild( "target" ).getValue();
+
+ if ( !source.equals("1.3") )
+ {
+ coreSettings.put( "org.eclipse.jdt.core.compiler.source", source );
+
+ coreSettings.put( "org.eclipse.jdt.core.compiler.compliance", source );
+ }
+
+ if ( !target.equals("1.2") )
+ {
+ coreSettings.put( "org.eclipse.jdt.core.compiler.codegen.targetPlatform", target );
+ }
+ }
+ }
+
+ // write the settings, if needed
+
+ if ( ! coreSettings.isEmpty() )
+ {
+ File settingsDir = new File( outputDir, "/.settings" );
+
+ settingsDir.mkdirs();
+
+ coreSettings.put( "eclipse.preferences.version", "1" );
+
+ try
+ {
+ File coreSettingsFile = new File( settingsDir, "org.eclipse.jdt.core.prefs" );
+ coreSettings.store( new FileOutputStream( coreSettingsFile ), null
+ );
+
+ log.info( "Wrote settings to " + coreSettingsFile );
+ }
+ catch (FileNotFoundException e)
+ {
+ throw new EclipsePluginException( "Cannot create settings file", e );
+ }
+ catch (IOException e)
+ {
+ throw new EclipsePluginException( "Error writing settings file", e );
+ }
+ }
+ else
+ {
+ log.info( "Not writing settings - defaults suffice" );
+ }
}
// ----------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org