brett 2005/04/06 20:06:18
Modified: maven-core/src/main/java/org/apache/maven/cli MavenCli.java Log: Load Maven version and display Revision Changes Path 1.28 +24 -2 maven-components/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java Index: MavenCli.java =================================================================== RCS file: /home/cvs/maven-components/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- MavenCli.java 4 Apr 2005 06:47:21 -0000 1.27 +++ MavenCli.java 7 Apr 2005 03:06:18 -0000 1.28 @@ -33,7 +33,9 @@ import org.apache.maven.execution.DefaultMavenExecutionRequest; import org.apache.maven.execution.MavenExecutionRequest; import org.apache.maven.execution.MavenExecutionResponse; +import org.apache.maven.model.Model; import org.apache.maven.model.Repository; +import org.apache.maven.model.io.xpp3.MavenXpp3Reader; import org.apache.maven.monitor.event.DefaultEventDispatcher; import org.apache.maven.monitor.event.DefaultEventMonitor; import org.apache.maven.monitor.event.EventDispatcher; @@ -51,7 +53,10 @@ import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStreamReader; +import java.net.URL; import java.util.Collections; +import java.util.Enumeration; import java.util.List; import java.util.Properties; @@ -107,7 +112,24 @@ } if ( commandLine.hasOption( CLIManager.VERSION ) ) { - System.out.println( "Maven version: " ); + // TODO: is there a beter way? Maybe read the manifest? + + String version = "unknown"; + + for ( Enumeration e = MavenCli.class.getClassLoader().getResources( "/META-INF/maven/pom.xml" ); + e.hasMoreElements(); ) + { + URL resource = (URL) e.nextElement(); + if ( resource.getPath().indexOf( "maven-core" ) >= 0 ) + { + MavenXpp3Reader reader = new MavenXpp3Reader(); + Model model = reader.read( new InputStreamReader( resource.openStream() ) ); + version = model.getVersion(); + break; + } + } + + System.out.println( "Maven version: " + version ); return 0; }