mirror of https://github.com/apache/maven.git
rnu integration tests
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@344908 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
1248c893ec
commit
cabf3d4759
20
bootstrap.sh
20
bootstrap.sh
|
@ -1,12 +1,12 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# TODO: error checking
|
ARGS=$@
|
||||||
|
|
||||||
(
|
(
|
||||||
cd bootstrap/bootstrap-mini
|
cd bootstrap/bootstrap-mini
|
||||||
./build
|
./build
|
||||||
ret=$?; if [ $ret != 0 ]; then exit $ret; fi
|
ret=$?; if [ $ret != 0 ]; then exit $ret; fi
|
||||||
java -jar target/bootstrap-mini.jar install
|
java -jar target/bootstrap-mini.jar install $ARGS
|
||||||
ret=$?; if [ $ret != 0 ]; then exit $ret; fi
|
ret=$?; if [ $ret != 0 ]; then exit $ret; fi
|
||||||
)
|
)
|
||||||
ret=$?; if [ $ret != 0 ]; then exit $ret; fi
|
ret=$?; if [ $ret != 0 ]; then exit $ret; fi
|
||||||
|
@ -15,11 +15,23 @@ BOOTSTRAP_JAR=../bootstrap-mini/target/bootstrap-mini-2.0.1-SNAPSHOT.jar
|
||||||
|
|
||||||
(
|
(
|
||||||
cd bootstrap/bootstrap-installer
|
cd bootstrap/bootstrap-installer
|
||||||
java -jar $BOOTSTRAP_JAR package
|
java -jar $BOOTSTRAP_JAR package $ARGS
|
||||||
ret=$?; if [ $ret != 0 ]; then exit $ret; fi
|
ret=$?; if [ $ret != 0 ]; then exit $ret; fi
|
||||||
)
|
)
|
||||||
ret=$?; if [ $ret != 0 ]; then exit $ret; fi
|
ret=$?; if [ $ret != 0 ]; then exit $ret; fi
|
||||||
|
|
||||||
java -jar bootstrap/bootstrap-installer/target/bootstrap-installer-2.0.1-SNAPSHOT.jar
|
# TODO: improve M2_HOME setting
|
||||||
|
INSTALL_DIR=$M2_HOME
|
||||||
|
java -Dmaven.home=$INSTALL_DIR -jar bootstrap/bootstrap-installer/target/bootstrap-installer-2.0.1-SNAPSHOT.jar $ARGS
|
||||||
|
ret=$?; if [ $ret != 0 ]; then exit $ret; fi
|
||||||
|
|
||||||
|
(
|
||||||
|
cd ./maven-core-it
|
||||||
|
echo
|
||||||
|
echo "Running maven-core integration tests ..."
|
||||||
|
echo
|
||||||
|
./maven-core-it.sh $ARGS
|
||||||
|
ret=$?; if [ $ret != 0 ]; then exit $ret; fi
|
||||||
|
)
|
||||||
ret=$?; if [ $ret != 0 ]; then exit $ret; fi
|
ret=$?; if [ $ret != 0 ]; then exit $ret; fi
|
||||||
|
|
||||||
|
|
|
@ -16,23 +16,25 @@ package org.apache.maven.bootstrap.installer;
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import org.apache.maven.bootstrap.Bootstrap;
|
||||||
import org.apache.maven.bootstrap.model.Dependency;
|
import org.apache.maven.bootstrap.model.Dependency;
|
||||||
import org.apache.maven.bootstrap.model.ModelReader;
|
import org.apache.maven.bootstrap.model.ModelReader;
|
||||||
import org.apache.maven.bootstrap.util.FileUtils;
|
import org.apache.maven.bootstrap.util.FileUtils;
|
||||||
import org.apache.maven.bootstrap.Bootstrap;
|
|
||||||
import org.codehaus.plexus.util.Os;
|
import org.codehaus.plexus.util.Os;
|
||||||
import org.codehaus.plexus.util.cli.Commandline;
|
import org.codehaus.plexus.util.Expand;
|
||||||
import org.codehaus.plexus.util.cli.CommandLineException;
|
import org.codehaus.plexus.util.cli.CommandLineException;
|
||||||
import org.codehaus.plexus.util.cli.CommandLineUtils;
|
import org.codehaus.plexus.util.cli.CommandLineUtils;
|
||||||
import org.codehaus.plexus.util.cli.StreamConsumer;
|
import org.codehaus.plexus.util.cli.Commandline;
|
||||||
import org.codehaus.plexus.util.cli.WriterStreamConsumer;
|
import org.codehaus.plexus.util.cli.WriterStreamConsumer;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
|
import java.io.FileInputStream;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
import java.util.zip.ZipInputStream;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Main class for bootstrap module.
|
* Main class for bootstrap module.
|
||||||
|
@ -63,6 +65,13 @@ public class BootstrapInstaller
|
||||||
{
|
{
|
||||||
Date fullStart = new Date();
|
Date fullStart = new Date();
|
||||||
|
|
||||||
|
// TODO: use parameters instead, and use --prefix
|
||||||
|
String mavenHome = System.getProperty( "maven.home" );
|
||||||
|
if ( mavenHome == null )
|
||||||
|
{
|
||||||
|
throw new Exception( "maven.home system property is required" );
|
||||||
|
}
|
||||||
|
|
||||||
String basedir = System.getProperty( "user.dir" );
|
String basedir = System.getProperty( "user.dir" );
|
||||||
|
|
||||||
// TODO: only build this guy, then move the next part to a new phase using it for resolution
|
// TODO: only build this guy, then move the next part to a new phase using it for resolution
|
||||||
|
@ -72,17 +81,51 @@ public class BootstrapInstaller
|
||||||
|
|
||||||
bootstrapper.buildProject( new File( basedir ), true );
|
bootstrapper.buildProject( new File( basedir ), true );
|
||||||
|
|
||||||
|
ModelReader mavenCoreModel = bootstrapper.getCachedModel( "org.apache.maven", "maven-core" );
|
||||||
|
|
||||||
File installation = new File( basedir, "bootstrap/target/installation" );
|
File installation = new File( basedir, "bootstrap/target/installation" );
|
||||||
createInstallation( installation );
|
createInstallation( installation, mavenCoreModel );
|
||||||
|
|
||||||
// TODO: should just need assembly from basedir
|
// TODO: should just need assembly from basedir
|
||||||
runMaven( installation, new File( basedir ), new String[]{"clean", "install"} );
|
runMaven( installation, new File( basedir ), new String[]{"clean", "install"} );
|
||||||
|
|
||||||
runMaven( installation, new File( basedir, "maven-core" ), new String[]{"clean", "assembly:assembly"} );
|
File mavenCoreDir = mavenCoreModel.getProjectFile().getParentFile();
|
||||||
|
runMaven( installation, mavenCoreDir, new String[]{"clean", "assembly:assembly"} );
|
||||||
|
|
||||||
|
File file = new File( mavenCoreDir, "target/maven-" + mavenCoreModel.getVersion() + "-bin.zip" );
|
||||||
|
|
||||||
|
FileUtils.deleteDirectory( mavenHome );
|
||||||
|
|
||||||
|
Expand expand = new Expand();
|
||||||
|
expand.setSrc( file );
|
||||||
|
File prefix = new File( mavenHome ).getParentFile();
|
||||||
|
expand.setDest( prefix );
|
||||||
|
expand.execute();
|
||||||
|
|
||||||
|
fixScriptPermissions( new File( prefix, "maven-" + mavenCoreModel.getVersion() + "/bin" ) );
|
||||||
|
|
||||||
Bootstrap.stats( fullStart, new Date() );
|
Bootstrap.stats( fullStart, new Date() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void fixScriptPermissions( File binDirectory )
|
||||||
|
throws InterruptedException, CommandLineException
|
||||||
|
{
|
||||||
|
if ( Os.isFamily( "unix" ) )
|
||||||
|
{
|
||||||
|
Commandline cli = new Commandline();
|
||||||
|
|
||||||
|
cli.setExecutable( "chmod" );
|
||||||
|
|
||||||
|
cli.createArgument().setValue( "+x" );
|
||||||
|
|
||||||
|
cli.createArgument().setValue( new File( binDirectory, "mvn" ).getAbsolutePath() );
|
||||||
|
|
||||||
|
cli.createArgument().setValue( new File( binDirectory, "m2" ).getAbsolutePath() );
|
||||||
|
|
||||||
|
cli.execute().waitFor();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void runMaven( File installation, File basedir, String[] args )
|
private void runMaven( File installation, File basedir, String[] args )
|
||||||
throws Exception, InterruptedException
|
throws Exception, InterruptedException
|
||||||
{
|
{
|
||||||
|
@ -90,6 +133,11 @@ public class BootstrapInstaller
|
||||||
|
|
||||||
cli.setExecutable( new File( installation, "bin/mvn" ).getAbsolutePath() );
|
cli.setExecutable( new File( installation, "bin/mvn" ).getAbsolutePath() );
|
||||||
|
|
||||||
|
// TODO: should we just remove this from the equation?
|
||||||
|
cli.addEnvironment( "M2_HOME", installation.getAbsolutePath() );
|
||||||
|
// No env is passed through
|
||||||
|
cli.addEnvironment( "JAVA_HOME", System.getProperty( "java.home" ) );
|
||||||
|
|
||||||
cli.setWorkingDirectory( basedir.getAbsolutePath() );
|
cli.setWorkingDirectory( basedir.getAbsolutePath() );
|
||||||
|
|
||||||
for ( int i = 0; i < args.length; i++ )
|
for ( int i = 0; i < args.length; i++ )
|
||||||
|
@ -107,7 +155,7 @@ public class BootstrapInstaller
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createInstallation( File dir )
|
private void createInstallation( File dir, ModelReader mavenCoreModel )
|
||||||
throws IOException, CommandLineException, InterruptedException
|
throws IOException, CommandLineException, InterruptedException
|
||||||
{
|
{
|
||||||
FileUtils.deleteDirectory( dir );
|
FileUtils.deleteDirectory( dir );
|
||||||
|
@ -125,9 +173,7 @@ public class BootstrapInstaller
|
||||||
File bootDirectory = new File( coreDirectory, "boot" );
|
File bootDirectory = new File( coreDirectory, "boot" );
|
||||||
bootDirectory.mkdir();
|
bootDirectory.mkdir();
|
||||||
|
|
||||||
ModelReader reader = bootstrapper.getCachedModel( "org.apache.maven", "maven-core" );
|
for ( Iterator i = mavenCoreModel.getDependencies().iterator(); i.hasNext(); )
|
||||||
|
|
||||||
for ( Iterator i = reader.getDependencies().iterator(); i.hasNext(); )
|
|
||||||
{
|
{
|
||||||
Dependency dep = (Dependency) i.next();
|
Dependency dep = (Dependency) i.next();
|
||||||
|
|
||||||
|
@ -146,26 +192,16 @@ public class BootstrapInstaller
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Dependency coreAsDep = new Dependency( reader.getGroupId(), reader.getArtifactId(), reader.getVersion(),
|
Dependency coreAsDep = new Dependency( mavenCoreModel.getGroupId(), mavenCoreModel.getArtifactId(),
|
||||||
reader.getPackaging(), Collections.EMPTY_LIST );
|
mavenCoreModel.getVersion(), mavenCoreModel.getPackaging(),
|
||||||
|
Collections.EMPTY_LIST );
|
||||||
|
|
||||||
FileUtils.copyFileToDirectory( bootstrapper.getArtifactFile( coreAsDep ), libDirectory );
|
FileUtils.copyFileToDirectory( bootstrapper.getArtifactFile( coreAsDep ), libDirectory );
|
||||||
|
|
||||||
File srcBinDirectory = new File( reader.getProjectFile().getParentFile(), "src/bin" );
|
File srcBinDirectory = new File( mavenCoreModel.getProjectFile().getParentFile(), "src/bin" );
|
||||||
|
|
||||||
FileUtils.copyDirectory( srcBinDirectory, binDirectory, null, "**/.svn/**" );
|
FileUtils.copyDirectory( srcBinDirectory, binDirectory, null, "**/.svn/**" );
|
||||||
|
|
||||||
if ( Os.isFamily( "unix" ) )
|
fixScriptPermissions( binDirectory );
|
||||||
{
|
|
||||||
Commandline cli = new Commandline();
|
|
||||||
|
|
||||||
cli.setExecutable( "chmod" );
|
|
||||||
|
|
||||||
cli.createArgument().setValue( "+x" );
|
|
||||||
|
|
||||||
cli.createArgument().setValue( new File( binDirectory, "mvn" ).getAbsolutePath() );
|
|
||||||
|
|
||||||
cli.execute().waitFor();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue