You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2006/02/26 20:59:31 UTC
svn commit: r381146 [2/2] - in
/maven/components/branches/maven-embedder-refactor: ./
bootstrap/bootstrap-installer/src/main/java/org/apache/maven/bootstrap/installer/
maven-cli/ maven-cli/src/ maven-cli/src/assemble/ maven-cli/src/bin/
maven-cli/src/c...
Added: maven/components/branches/maven-embedder-refactor/maven-cli/src/main/java/org/apache/maven/cli/MavenCli.java
URL: http://svn.apache.org/viewcvs/maven/components/branches/maven-embedder-refactor/maven-cli/src/main/java/org/apache/maven/cli/MavenCli.java?rev=381146&view=auto
==============================================================================
--- maven/components/branches/maven-embedder-refactor/maven-cli/src/main/java/org/apache/maven/cli/MavenCli.java (added)
+++ maven/components/branches/maven-embedder-refactor/maven-cli/src/main/java/org/apache/maven/cli/MavenCli.java Sun Feb 26 11:59:28 2006
@@ -0,0 +1,508 @@
+package org.apache.maven.cli;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.ParseException;
+import org.apache.maven.CommonMavenObjectFactory;
+import org.apache.maven.Maven;
+import org.apache.maven.SettingsConfigurationException;
+import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
+import org.apache.maven.execution.DefaultMavenExecutionRequest;
+import org.apache.maven.execution.MavenExecutionRequest;
+import org.apache.maven.execution.ReactorManager;
+import org.apache.maven.reactor.MavenExecutionException;
+import org.apache.maven.settings.Settings;
+import org.apache.maven.wagon.events.TransferListener;
+import org.codehaus.classworlds.ClassWorld;
+import org.codehaus.plexus.PlexusContainerException;
+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+import org.codehaus.plexus.embed.Embedder;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+import java.util.StringTokenizer;
+
+/**
+ * @author jason van zyl
+ * @version $Id$
+ * @noinspection UseOfSystemOutOrSystemErr,ACCESS_STATIC_VIA_INSTANCE
+ */
+public class MavenCli
+{
+ /**
+ * @noinspection ConfusingMainMethod
+ */
+ public static int main( String[] args, ClassWorld classWorld )
+ {
+ // ----------------------------------------------------------------------
+ // Setup the command line parser
+ // ----------------------------------------------------------------------
+
+ CLIManager cliManager = new CLIManager();
+
+ CommandLine commandLine;
+ try
+ {
+ commandLine = cliManager.parse( args );
+ }
+ catch ( ParseException e )
+ {
+ System.err.println( "Unable to parse command line options: " + e.getMessage() );
+ cliManager.displayHelp();
+ return 1;
+ }
+
+ // TODO: maybe classworlds could handle this requirement...
+ if ( System.getProperty( "java.class.version", "44.0" ).compareTo( "48.0" ) < 0 )
+ {
+ System.err.println( "Sorry, but JDK 1.4 or above is required to execute Maven" );
+ System.err.println(
+ "You appear to be using Java version: " + System.getProperty( "java.version", "<unknown>" ) );
+
+ return 1;
+ }
+
+ boolean debug = commandLine.hasOption( CLIManager.DEBUG );
+
+ boolean showErrors = debug || commandLine.hasOption( CLIManager.ERRORS );
+
+ if ( showErrors )
+ {
+ System.out.println( "+ Error stacktraces are turned on." );
+ }
+
+ // ----------------------------------------------------------------------
+ // Process particular command line options
+ // ----------------------------------------------------------------------
+
+ if ( commandLine.hasOption( CLIManager.HELP ) )
+ {
+ cliManager.displayHelp();
+ return 0;
+ }
+
+ if ( commandLine.hasOption( CLIManager.VERSION ) )
+ {
+ showVersion();
+
+ return 0;
+ }
+ else if ( debug )
+ {
+ showVersion();
+ }
+
+ // ----------------------------------------------------------------------
+ // Now that we have everything that we need we will fire up plexus and
+ // bring the maven component to life for use.
+ // ----------------------------------------------------------------------
+
+ Embedder embedder = new Embedder();
+
+ try
+ {
+ embedder.start( classWorld );
+ }
+ catch ( PlexusContainerException e )
+ {
+ showFatalError( "Unable to start the embedded plexus container", e, showErrors );
+
+ return 1;
+ }
+
+ String userSettingsPath = null;
+
+ if ( commandLine.hasOption( CLIManager.ALTERNATE_USER_SETTINGS ) )
+ {
+ userSettingsPath = commandLine.getOptionValue( CLIManager.ALTERNATE_USER_SETTINGS );
+ }
+
+ boolean interactive = true;
+
+ if ( commandLine.hasOption( CLIManager.BATCH_MODE ) )
+ {
+ interactive = false;
+ }
+
+ boolean usePluginRegistry = true;
+
+ if ( commandLine.hasOption( CLIManager.SUPPRESS_PLUGIN_REGISTRY ) )
+ {
+ usePluginRegistry = false;
+ }
+
+ Boolean pluginUpdateOverride = Boolean.FALSE;
+
+ if ( commandLine.hasOption( CLIManager.FORCE_PLUGIN_UPDATES ) ||
+ commandLine.hasOption( CLIManager.FORCE_PLUGIN_UPDATES2 ) )
+ {
+ pluginUpdateOverride = Boolean.TRUE;
+ }
+ else if ( commandLine.hasOption( CLIManager.SUPPRESS_PLUGIN_UPDATES ) )
+ {
+ pluginUpdateOverride = Boolean.FALSE;
+ }
+
+ // ----------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------
+
+ try
+ {
+ List goals = commandLine.getArgList();
+
+ boolean recursive = true;
+
+ String reactorFailureBehaviour = null;
+
+ if ( commandLine.hasOption( CLIManager.NON_RECURSIVE ) )
+ {
+ recursive = false;
+ }
+
+ if ( commandLine.hasOption( CLIManager.FAIL_FAST ) )
+ {
+ reactorFailureBehaviour = ReactorManager.FAIL_FAST;
+ }
+ else if ( commandLine.hasOption( CLIManager.FAIL_AT_END ) )
+ {
+ reactorFailureBehaviour = ReactorManager.FAIL_AT_END;
+ }
+ else if ( commandLine.hasOption( CLIManager.FAIL_NEVER ) )
+ {
+ reactorFailureBehaviour = ReactorManager.FAIL_NEVER;
+ }
+
+ boolean offline = false;
+
+ if ( commandLine.hasOption( CLIManager.OFFLINE ) )
+ {
+ offline = true;
+ }
+
+ boolean updateSnapshots = false;
+
+ if ( commandLine.hasOption( CLIManager.UPDATE_SNAPSHOTS ) )
+ {
+ updateSnapshots = true;
+ }
+
+ String globalChecksumPolicy = null;
+
+ if ( commandLine.hasOption( CLIManager.CHECKSUM_FAILURE_POLICY ) )
+ {
+ // todo; log
+ System.out.println( "+ Enabling strict checksum verification on all artifact downloads." );
+
+ globalChecksumPolicy = ArtifactRepositoryPolicy.CHECKSUM_POLICY_FAIL;
+ }
+ else if ( commandLine.hasOption( CLIManager.CHECKSUM_WARNING_POLICY ) )
+ {
+ // todo: log
+ System.out.println( "+ Disabling strict checksum verification on all artifact downloads." );
+
+ globalChecksumPolicy = ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN;
+ }
+
+ File baseDirectory = new File( System.getProperty( "user.dir" ) );
+
+ // ----------------------------------------------------------------------
+ // Profile Activation
+ // ----------------------------------------------------------------------
+
+ List activeProfiles = new ArrayList();
+
+ List inactiveProfiles = new ArrayList();
+
+ if ( commandLine.hasOption( CLIManager.ACTIVATE_PROFILES ) )
+ {
+ String profilesLine = commandLine.getOptionValue( CLIManager.ACTIVATE_PROFILES );
+
+ StringTokenizer profileTokens = new StringTokenizer( profilesLine, "," );
+
+ while ( profileTokens.hasMoreTokens() )
+ {
+ String profileAction = profileTokens.nextToken().trim();
+
+ if ( profileAction.startsWith( "-" ) )
+ {
+ activeProfiles.add( profileAction.substring( 1 ) );
+ }
+ else if ( profileAction.startsWith( "+" ) )
+ {
+ inactiveProfiles.add( profileAction.substring( 1 ) );
+ }
+ else
+ {
+ // TODO: deprecate this eventually!
+ activeProfiles.add( profileAction );
+ }
+ }
+ }
+
+ TransferListener transferListener;
+
+ if ( interactive )
+ {
+ transferListener = new ConsoleDownloadMonitor();
+ }
+ else
+ {
+ transferListener = new BatchModeDownloadMonitor();
+ }
+
+ boolean reactorActive = false;
+
+ if ( commandLine.hasOption( CLIManager.REACTOR ) )
+ {
+ reactorActive = true;
+ }
+
+ String alternatePomFile = null;
+ if ( commandLine.hasOption( CLIManager.ALTERNATE_POM_FILE ) )
+ {
+ alternatePomFile = commandLine.getOptionValue( CLIManager.ALTERNATE_POM_FILE );
+ }
+
+ // ----------------------------------------------------------------------
+ // From here we are CLI free
+ // ----------------------------------------------------------------------
+
+ // -> baseDirectory
+ // -> goals
+ // -> debug: use to set the threshold on the logger manager
+ // -> active profiles (settings)
+ // -> inactive profiles (settings)
+ // -> offline (settings)
+ // -> interactive (settings)
+ // -> Settings
+ // -> localRepository
+ // -> interactiveMode
+ // -> usePluginRegistry
+ // -> offline
+ // -> proxies
+ // -> servers
+ // -> mirrors
+ // -> profiles
+ // -> activeProfiles
+ // -> pluginGroups
+ // -> executionProperties
+ // -> reactorFailureBehaviour: fail fast, fail at end, fail never
+ // -> globalChecksumPolicy: fail, warn
+ // -> showErrors (this is really CLI is but used inside Maven internals
+ // -> recursive
+ // -> updateSnapshots
+ // -> reactorActive
+ // -> transferListener: in the CLI this is batch or console
+
+ // We have a general problem with plexus components that are singletons in that they use
+ // the same logger for their lifespan. This is not good in that many requests may be fired
+ // off and the singleton plexus component will continue to funnel their output to the same
+ // logger. We need to be able to swap the logger.
+
+ Properties executionProperties = getExecutionProperties( commandLine );
+
+ // the local repository should just be a path and we should look here:
+ // in the system property
+ // user specified settings.xml
+ // default ~/.m2/settings.xml
+ // and with that maven internals should contruct the ArtifactRepository object
+
+ int loggingLevel;
+
+ if ( debug )
+ {
+ loggingLevel = MavenExecutionRequest.LOGGING_LEVEL_DEBUG;
+ }
+ else
+ {
+ loggingLevel = MavenExecutionRequest.LOGGING_LEVEL_WARN;
+ }
+
+ Maven maven = (Maven) embedder.lookup( Maven.ROLE );
+
+ CommonMavenObjectFactory mavenObjectFactory = (CommonMavenObjectFactory) embedder.lookup( CommonMavenObjectFactory.ROLE );
+
+ Settings settings = mavenObjectFactory.buildSettings( userSettingsPath, interactive, offline, usePluginRegistry, pluginUpdateOverride );
+
+ String localRepositoryPath = settings.getLocalRepository();
+
+ // @todo we either make Settings the official configuration mechanism or allow the indiviaul setting in the request
+ // for each of the things in the settings object. Seems redundant to configure some things via settings and
+ // some via the request. The Settings object is used in about 16 different places in the core so something
+ // to consider.
+
+ MavenExecutionRequest request = new DefaultMavenExecutionRequest()
+ .setBasedir( baseDirectory )
+ .setGoals( goals )
+ .setLocalRepositoryPath( localRepositoryPath )
+ .setProperties( executionProperties )
+ .setFailureBehavior( reactorFailureBehaviour )
+ .setRecursive( recursive )
+ .setReactorActive( reactorActive )
+ .setPomFile( alternatePomFile )
+ .setShowErrors( showErrors )
+ .setInteractive( interactive )
+ .addActiveProfiles( activeProfiles )
+ .addInactiveProfiles( inactiveProfiles )
+ .setLoggingLevel( loggingLevel )
+ .activateDefaultEventMonitor()
+ .setSettings( settings )
+ .setTransferListener( transferListener )
+ .setOffline( offline )
+ .setUpdateSnapshots( updateSnapshots )
+ .setGlobalChecksumPolicy( globalChecksumPolicy );
+
+ maven.execute( request );
+ }
+ catch ( SettingsConfigurationException e )
+ {
+ showError( "Error reading settings.xml: " + e.getMessage(), e, showErrors );
+
+ return 1;
+ }
+ catch ( ComponentLookupException e )
+ {
+ showFatalError( "Unable to configure the Maven application", e, showErrors );
+
+ return 1;
+ }
+ catch ( MavenExecutionException e )
+ {
+ return 1;
+ }
+
+ return 0;
+ }
+
+ private static void showFatalError( String message, Exception e, boolean show )
+ {
+ System.err.println( "FATAL ERROR: " + message );
+ if ( show )
+ {
+ System.err.println( "Error stacktrace:" );
+
+ e.printStackTrace();
+ }
+ else
+ {
+ System.err.println( "For more information, run with the -e flag" );
+ }
+ }
+
+ private static void showError( String message, Exception e, boolean show )
+ {
+ System.err.println( message );
+ if ( show )
+ {
+ System.err.println( "Error stacktrace:" );
+
+ e.printStackTrace();
+ }
+ }
+
+ private static void showVersion()
+ {
+ InputStream resourceAsStream;
+ try
+ {
+ Properties properties = new Properties();
+ resourceAsStream = MavenCli.class.getClassLoader().getResourceAsStream(
+ "META-INF/maven/org.apache.maven/maven-core/pom.properties" );
+ properties.load( resourceAsStream );
+
+ if ( properties.getProperty( "builtOn" ) != null )
+ {
+ System.out.println( "Maven version: " + properties.getProperty( "version", "unknown" )
+ + " built on " + properties.getProperty( "builtOn" ) );
+ }
+ else
+ {
+ System.out.println( "Maven version: " + properties.getProperty( "version", "unknown" ) );
+ }
+ }
+ catch ( IOException e )
+ {
+ System.err.println( "Unable determine version from JAR file: " + e.getMessage() );
+ }
+ }
+
+ // ----------------------------------------------------------------------
+ // System properties handling
+ // ----------------------------------------------------------------------
+
+ private static Properties getExecutionProperties( CommandLine commandLine )
+ {
+ Properties executionProperties = new Properties();
+
+ // ----------------------------------------------------------------------
+ // Options that are set on the command line become system properties
+ // and therefore are set in the session properties. System properties
+ // are most dominant.
+ // ----------------------------------------------------------------------
+
+ if ( commandLine.hasOption( CLIManager.SET_SYSTEM_PROPERTY ) )
+ {
+ String[] defStrs = commandLine.getOptionValues( CLIManager.SET_SYSTEM_PROPERTY );
+
+ for ( int i = 0; i < defStrs.length; ++i )
+ {
+ setCliProperty( defStrs[i], executionProperties );
+ }
+ }
+
+ executionProperties.putAll( System.getProperties() );
+
+ return executionProperties;
+ }
+
+ private static void setCliProperty( String property, Properties executionProperties )
+ {
+ String name;
+
+ String value;
+
+ int i = property.indexOf( "=" );
+
+ if ( i <= 0 )
+ {
+ name = property.trim();
+
+ value = "true";
+ }
+ else
+ {
+ name = property.substring( 0, i ).trim();
+
+ value = property.substring( i + 1 ).trim();
+ }
+
+ executionProperties.setProperty( name, value );
+
+ // ----------------------------------------------------------------------
+ // I'm leaving the setting of system properties here as not to break
+ // the SystemPropertyProfileActivator. This won't harm embedding. jvz.
+ // ----------------------------------------------------------------------
+
+ System.setProperty( name, value );
+ }
+}
Propchange: maven/components/branches/maven-embedder-refactor/maven-cli/src/main/java/org/apache/maven/cli/MavenCli.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/branches/maven-embedder-refactor/maven-cli/src/main/java/org/apache/maven/cli/MavenCli.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/components/branches/maven-embedder-refactor/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
URL: http://svn.apache.org/viewcvs/maven/components/branches/maven-embedder-refactor/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java?rev=381146&r1=381145&r2=381146&view=diff
==============================================================================
--- maven/components/branches/maven-embedder-refactor/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java (original)
+++ maven/components/branches/maven-embedder-refactor/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java Sun Feb 26 11:59:28 2006
@@ -17,7 +17,9 @@
*/
import org.apache.maven.Maven;
-import org.apache.maven.SettingsConfigurationException;
+import org.apache.maven.CommonMavenObjectFactory;
+import org.apache.maven.reactor.MavenExecutionException;
+import org.apache.maven.execution.MavenExecutionRequest;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.factory.ArtifactFactory;
import org.apache.maven.artifact.manager.WagonManager;
@@ -28,16 +30,10 @@
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.artifact.resolver.ArtifactResolver;
-import org.apache.maven.execution.DefaultMavenExecutionRequest;
-import org.apache.maven.execution.MavenExecutionRequest;
-import org.apache.maven.execution.ReactorManager;
import org.apache.maven.lifecycle.LifecycleExecutor;
import org.apache.maven.model.Model;
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
-import org.apache.maven.monitor.event.DefaultEventDispatcher;
-import org.apache.maven.monitor.event.EventDispatcher;
-import org.apache.maven.monitor.event.EventMonitor;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.descriptor.PluginDescriptor;
import org.apache.maven.plugin.descriptor.PluginDescriptorBuilder;
@@ -46,7 +42,6 @@
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.project.ProjectBuildingException;
-import org.apache.maven.reactor.MavenExecutionException;
import org.apache.maven.settings.MavenSettingsBuilder;
import org.apache.maven.settings.RuntimeInfo;
import org.apache.maven.settings.Settings;
@@ -60,8 +55,6 @@
import org.codehaus.plexus.configuration.PlexusConfiguration;
import org.codehaus.plexus.configuration.PlexusConfigurationException;
import org.codehaus.plexus.embed.Embedder;
-import org.codehaus.plexus.logging.LoggerManager;
-import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.util.DirectoryScanner;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
@@ -73,11 +66,8 @@
import java.io.InputStreamReader;
import java.io.Writer;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.Iterator;
import java.util.List;
-import java.util.Properties;
-import java.util.StringTokenizer;
/**
* Class intended to be used by clients who wish to embed Maven into their applications
@@ -122,8 +112,14 @@
private ArtifactRepositoryLayout defaultArtifactRepositoryLayout;
+ // ----------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------
+
private Maven maven;
+ private CommonMavenObjectFactory mavenObjectFactory;
+
// ----------------------------------------------------------------------
// Configuration
// ----------------------------------------------------------------------
@@ -371,120 +367,6 @@
// Execution of phases/goals
// ----------------------------------------------------------------------
- // TODO: should we allow the passing in of a settings object so that everything can be taken from the client env
- // TODO: transfer listener
- // TODO: logger
-
- public void execute( MavenProject project,
- List goals,
- EventMonitor eventMonitor,
- TransferListener transferListener,
- Properties properties,
- File executionRootDirectory )
- throws MavenExecutionException
- {
- execute( Collections.singletonList( project ), goals, eventMonitor, transferListener, properties, executionRootDirectory );
- }
-
- public void execute( List projects,
- List goals,
- EventMonitor eventMonitor,
- TransferListener transferListener,
- Properties properties,
- File executionRootDirectory )
- throws MavenExecutionException
- {
- EventDispatcher eventDispatcher = new DefaultEventDispatcher();
-
- eventDispatcher.addEventMonitor( eventMonitor );
-
- LoggerManager loggerManager = new MavenEmbedderLoggerManager( new PlexusLoggerAdapter( logger ) );
-
- loggerManager.setThreshold( Logger.LEVEL_INFO );
-
- MavenExecutionRequest request = createRequest( settings,
- goals,
- eventDispatcher,
- loggerManager,
- profileManager,
- executionRootDirectory,
- properties,
- true,
- false,
- null );
-
- // ----------------------------------------------------------------------
- // Maven should not be using system properties internally but because
- // it does for now I'll just take properties that are handed to me
- // and set them so that the plugin expression evaluator will work
- // as expected.
- // ----------------------------------------------------------------------
-
- if ( properties != null )
- {
- for ( Iterator i = properties.keySet().iterator(); i.hasNext(); )
- {
- String key = (String) i.next();
-
- String value = properties.getProperty( key );
-
- System.setProperty( key, value );
- }
- }
-
- if ( transferListener != null )
- {
- wagonManager.setDownloadMonitor( transferListener );
- }
-
- maven.execute( request );
- }
-
-
- private MavenExecutionRequest createRequest( Settings settings,
- List goals,
- EventDispatcher eventDispatcher,
- LoggerManager loggerManager,
- ProfileManager profileManager,
- File baseDir,
- Properties properties,
- boolean showErrors,
- boolean isNonRecursive ,
- String failureType )
- {
- MavenExecutionRequest request;
-
- ArtifactRepository localRepository = createLocalRepository( settings );
-
- request = new DefaultMavenExecutionRequest( localRepository,
- settings,
- eventDispatcher,
- goals,
- baseDir.getPath(),
- profileManager,
- properties,
- showErrors );
-
- if ( isNonRecursive )
- {
- request.setRecursive( false );
- }
-
- if ( failureType == null || failureType.equals( ReactorManager.FAIL_FAST ) )
- {
- request.setFailureBehavior( ReactorManager.FAIL_FAST );
- }
- else if ( failureType.equals( ReactorManager.FAIL_AT_END ) )
- {
- request.setFailureBehavior( ReactorManager.FAIL_AT_END );
- }
- else if ( failureType.equals( ReactorManager.FAIL_FAST ) )
- {
- request.setFailureBehavior( ReactorManager.FAIL_NEVER );
- }
-
- return request;
- }
// ----------------------------------------------------------------------
@@ -648,6 +530,8 @@
maven = (Maven) embedder.lookup( Maven.ROLE );
+ mavenObjectFactory = (CommonMavenObjectFactory) embedder.lookup( CommonMavenObjectFactory.ROLE );
+
pluginDescriptorBuilder = new PluginDescriptorBuilder();
profileManager = new DefaultProfileManager( embedder.getContainer() );
@@ -777,5 +661,15 @@
{
throw new MavenEmbedderException( "Cannot stop the embedder.", e );
}
+ }
+
+ // ----------------------------------------------------------------------
+ // Start of new embedder API
+ // ----------------------------------------------------------------------
+
+ public void execute( MavenExecutionRequest request )
+ throws MavenExecutionException
+ {
+ maven.execute( request );
}
}
Modified: maven/components/branches/maven-embedder-refactor/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/branches/maven-embedder-refactor/pom.xml?rev=381146&r1=381145&r2=381146&view=diff
==============================================================================
--- maven/components/branches/maven-embedder-refactor/pom.xml (original)
+++ maven/components/branches/maven-embedder-refactor/pom.xml Sun Feb 26 11:59:28 2006
@@ -187,6 +187,7 @@
<module>maven-repository-metadata</module>
<module>maven-script</module>
<module>maven-settings</module>
+ <module>maven-cli</module>
</modules>
<repositories>
<repository>