mirror of https://github.com/apache/maven.git
create a bootstrap installation
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@344122 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
d8f04930df
commit
62a19fa56e
|
@ -45,15 +45,16 @@ import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.TimeZone;
|
import java.util.TimeZone;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Main class for bootstrap module.
|
* Main class for bootstrap module.
|
||||||
|
@ -69,6 +70,8 @@ public class Bootstrap
|
||||||
|
|
||||||
private Map modelFileCache = new HashMap();
|
private Map modelFileCache = new HashMap();
|
||||||
|
|
||||||
|
private Map modelCache = new HashMap();
|
||||||
|
|
||||||
public static void main( String[] args )
|
public static void main( String[] args )
|
||||||
throws Exception
|
throws Exception
|
||||||
{
|
{
|
||||||
|
@ -123,9 +126,61 @@ public class Bootstrap
|
||||||
|
|
||||||
buildProject( new File( basedir ), resolver, true );
|
buildProject( new File( basedir ), resolver, true );
|
||||||
|
|
||||||
|
createInstallation( new File( basedir, "target/installation" ), resolver );
|
||||||
|
|
||||||
stats( fullStart, new Date() );
|
stats( fullStart, new Date() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void createInstallation( File dir, ArtifactResolver resolver )
|
||||||
|
throws IOException
|
||||||
|
{
|
||||||
|
FileUtils.deleteDirectory( dir );
|
||||||
|
|
||||||
|
dir.mkdirs();
|
||||||
|
|
||||||
|
File libDirectory = new File( dir, "lib" );
|
||||||
|
libDirectory.mkdir();
|
||||||
|
|
||||||
|
File binDirectory = new File( dir, "bin" );
|
||||||
|
|
||||||
|
File coreDirectory = new File( dir, "core" );
|
||||||
|
coreDirectory.mkdir();
|
||||||
|
|
||||||
|
File bootDirectory = new File( coreDirectory, "boot" );
|
||||||
|
bootDirectory.mkdir();
|
||||||
|
|
||||||
|
ModelReader reader = (ModelReader) modelCache.get( "org.apache.maven:maven-core" );
|
||||||
|
|
||||||
|
for ( Iterator i = reader.getDependencies().iterator(); i.hasNext(); )
|
||||||
|
{
|
||||||
|
Dependency dep = (Dependency) i.next();
|
||||||
|
|
||||||
|
if ( dep.getArtifactId().equals( "classworlds" ) )
|
||||||
|
{
|
||||||
|
FileUtils.copyFileToDirectory( resolver.getArtifactFile( dep ), bootDirectory );
|
||||||
|
}
|
||||||
|
else if ( dep.getArtifactId().equals( "plexus-container-default" ) ||
|
||||||
|
dep.getArtifactId().equals( "plexus-utils" ) )
|
||||||
|
{
|
||||||
|
FileUtils.copyFileToDirectory( resolver.getArtifactFile( dep ), coreDirectory );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FileUtils.copyFileToDirectory( resolver.getArtifactFile( dep ), libDirectory );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Dependency coreAsDep = new Dependency( reader.getGroupId(), reader.getArtifactId(), reader.getVersion(),
|
||||||
|
reader.getPackaging(), Collections.EMPTY_LIST );
|
||||||
|
|
||||||
|
FileUtils.copyFileToDirectory( resolver.getArtifactFile( coreAsDep ), libDirectory );
|
||||||
|
|
||||||
|
File srcBinDirectory = (File) modelFileCache.get( "org.apache.maven:maven-core" );
|
||||||
|
srcBinDirectory = new File( srcBinDirectory.getParentFile(), "src/bin" );
|
||||||
|
|
||||||
|
FileUtils.copyDirectory( srcBinDirectory, binDirectory, null, "**/.svn/**" );
|
||||||
|
}
|
||||||
|
|
||||||
private void cacheModels( File basedir, ArtifactResolver resolver )
|
private void cacheModels( File basedir, ArtifactResolver resolver )
|
||||||
throws IOException, ParserConfigurationException, SAXException
|
throws IOException, ParserConfigurationException, SAXException
|
||||||
{
|
{
|
||||||
|
@ -293,7 +348,10 @@ public class Bootstrap
|
||||||
|
|
||||||
resolver.addBuiltArtifact( reader.getGroupId(), reader.getArtifactId(), "pom", file );
|
resolver.addBuiltArtifact( reader.getGroupId(), reader.getArtifactId(), "pom", file );
|
||||||
|
|
||||||
modelFileCache.put( reader.getGroupId() + ":" + reader.getArtifactId(), file );
|
String id = reader.getGroupId() + ":" + reader.getArtifactId();
|
||||||
|
modelFileCache.put( id, file );
|
||||||
|
|
||||||
|
modelCache.put( id, reader );
|
||||||
|
|
||||||
return reader;
|
return reader;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue