brett 2005/04/03 22:08:45
Modified: maven-mboot2/src/main/java/download ArtifactDownloader.java
maven-mboot2/src/main/java/model Dependency.java
ModelReader.java
maven-mboot2/src/main/java MBoot.java
Added: maven-mboot2/src/main/java/model Repository.java
Log:
isolate path generation in Repository class
Revision Changes Path
1.5 +14 -40
maven-components/maven-mboot2/src/main/java/download/ArtifactDownloader.java
Index: ArtifactDownloader.java
===================================================================
RCS file:
/home/cvs/maven-components/maven-mboot2/src/main/java/download/ArtifactDownloader.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ArtifactDownloader.java 4 Apr 2005 01:40:16 -0000 1.4
+++ ArtifactDownloader.java 4 Apr 2005 05:08:45 -0000 1.5
@@ -1,6 +1,7 @@
package download;
import model.Dependency;
+import model.Repository;
import java.io.File;
import java.io.FileNotFoundException;
@@ -14,8 +15,6 @@
{
public static final String SNAPSHOT_SIGNATURE = "-SNAPSHOT";
- private File mavenRepoLocal;
-
private List remoteRepos;
private boolean useTimestamp = true;
@@ -30,7 +29,9 @@
private String proxyPassword;
- public ArtifactDownloader( String localRepository, List
remoteRepositories )
+ private Repository localRepository;
+
+ public ArtifactDownloader( Repository localRepository, List
remoteRepositories )
throws Exception
{
setRemoteRepos( remoteRepositories );
@@ -42,34 +43,12 @@
System.exit( 1 );
}
- mavenRepoLocal = new File( localRepository );
-
- if ( !mavenRepoLocal.exists() )
- {
- if ( !mavenRepoLocal.mkdirs() )
- {
- System.err.println( "Cannot create the specified local
repository: " + mavenRepoLocal );
-
- System.exit( 1 );
- }
- }
-
- if ( !mavenRepoLocal.canWrite() )
- {
- System.err.println( "Can't write to " +
mavenRepoLocal.getAbsolutePath() );
+ this.localRepository = localRepository;
- System.exit( 1 );
- }
-
- System.out.println( "Using the following for your local repository:
" + mavenRepoLocal );
+ System.out.println( "Using the following for your local repository:
" + localRepository );
System.out.println( "Using the following for your remote
repositories: " + remoteRepos );
}
- public File getMavenRepoLocal()
- {
- return mavenRepoLocal;
- }
-
private Set downloadedArtifacts = new HashSet();
public void setProxy( String host, String port, String userName, String
password )
@@ -90,8 +69,7 @@
if ( !downloadedArtifacts.contains( dep.getId() ) )
{
- String repositoryPath = dep.getRepositoryPath();
- File destinationFile = new File( mavenRepoLocal,
repositoryPath );
+ File destinationFile = localRepository.getArtifactFile( dep
);
// The directory structure for this project may
// not exists so create it if missing.
File directory = destinationFile.getParentFile();
@@ -106,7 +84,7 @@
continue;
}
- getRemoteArtifact( repositoryPath, destinationFile );
+ getRemoteArtifact( dep, destinationFile );
if ( !destinationFile.exists() )
{
@@ -129,26 +107,22 @@
if ( repositories.isEmpty() )
{
- remoteRepos.add( "http://repo1.maven.org" );
+ // TODO: configure layout
+ remoteRepos.add( new Repository( "http://repo1.maven.org",
Repository.LAYOUT_LEGACY ) );
}
}
- private List getRemoteRepos()
- {
- return remoteRepos;
- }
-
- private boolean getRemoteArtifact( String file, File destinationFile )
+ private boolean getRemoteArtifact( Dependency dep, File destinationFile )
{
boolean fileFound = false;
- for ( Iterator i = getRemoteRepos().iterator(); i.hasNext(); )
+ for ( Iterator i = remoteRepos.iterator(); i.hasNext(); )
{
- String remoteRepo = (String) i.next();
+ Repository remoteRepo = (Repository) i.next();
// The username and password parameters are not being
// used here. Those are the "" parameters you see below.
- String url = remoteRepo + "/" + file;
+ String url = remoteRepo.getArtifactPath( dep );
if ( !url.startsWith( "file" ) )
{
1.5 +3 -12
maven-components/maven-mboot2/src/main/java/model/Dependency.java
Index: Dependency.java
===================================================================
RCS file:
/home/cvs/maven-components/maven-mboot2/src/main/java/model/Dependency.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- Dependency.java 4 Apr 2005 02:57:27 -0000 1.4
+++ Dependency.java 4 Apr 2005 05:08:45 -0000 1.5
@@ -43,11 +43,12 @@
{
}
- public Dependency( String groupId, String artifactId, String version )
+ public Dependency( String groupId, String artifactId, String version,
String type )
{
this.version = version;
this.artifactId = artifactId;
this.groupId = groupId;
+ this.type = type;
}
public void setId( String id )
@@ -193,14 +194,4 @@
return false;
}
-
- public String getRepositoryPath()
- {
- return getArtifactDirectory() + "/" + getType() + "s/" +
getArtifact();
- }
-
- public String toString()
- {
- return getRepositoryPath();
- }
}
1.3 +29 -26
maven-components/maven-mboot2/src/main/java/model/ModelReader.java
Index: ModelReader.java
===================================================================
RCS file:
/home/cvs/maven-components/maven-mboot2/src/main/java/model/ModelReader.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ModelReader.java 4 Apr 2005 02:01:49 -0000 1.2
+++ ModelReader.java 4 Apr 2005 05:08:45 -0000 1.3
@@ -16,12 +16,10 @@
* limitations under the License.
*/
-import download.ArtifactDownloader;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import util.AbstractReader;
-import java.io.File;
import java.util.ArrayList;
import java.util.List;
@@ -51,7 +49,7 @@
private List dependencies = new ArrayList();
- private List remoteRepositories = new ArrayList();
+ private List repositories = new ArrayList();
private List resources = new ArrayList();
@@ -71,16 +69,18 @@
private StringBuffer bodyText = new StringBuffer();
- private final ArtifactDownloader downloader;
+ private final Repository localRepository;
- public ModelReader( ArtifactDownloader downloader )
+ private Repository currentRepository;
+
+ public ModelReader( Repository downloader )
{
- this.downloader = downloader;
+ this.localRepository = downloader;
}
public List getRemoteRepositories()
{
- return remoteRepositories;
+ return repositories;
}
public List getDependencies()
@@ -101,6 +101,8 @@
}
else if ( rawName.equals( "repository" ) )
{
+ currentRepository = new Repository();
+
insideRepository = true;
}
else if ( rawName.equals( "dependency" ) )
@@ -140,8 +142,6 @@
// support both v3 <extend> and v4 <parent>
if ( rawName.equals( "parent" ) )
{
- File f;
-
if ( parentArtifactId == null ||
parentArtifactId.trim().length() == 0 )
{
throw new SAXException( "Missing required element in
<parent>: artifactId." );
@@ -167,12 +167,9 @@
version = parentVersion;
}
- f = new File( downloader.getMavenRepoLocal(), parentGroupId +
"/poms/" + parentArtifactId + "-" +
- parentVersion +
".pom" );
+ ModelReader p = new ModelReader( localRepository );
- ModelReader p = new ModelReader( downloader );
-
- if ( !p.parse( f ) )
+ if ( !p.parse( localRepository.getArtifactFile( parentGroupId,
parentArtifactId, parentVersion, "pom" ) ) )
{
throw new SAXException( "Could not parse parent pom.xml" );
}
@@ -201,6 +198,12 @@
insideResource = false;
}
+ else if ( rawName.equals( "repository" ) )
+ {
+ repositories.add( currentRepository );
+
+ insideRepository = false;
+ }
else if ( insideParent )
{
if ( rawName.equals( "groupId" ) )
@@ -262,6 +265,17 @@
currentResource.addExclude( getBodyText() );
}
}
+ else if ( insideRepository )
+ {
+ if ( rawName.equals( "url" ) )
+ {
+ currentRepository.setBasedir( getBodyText() );
+ }
+ else if ( rawName.equals( "layout" ) )
+ {
+ currentRepository.setLayout( getBodyText() );
+ }
+ }
else if ( depth == 2 )
{
if ( rawName.equals( "artifactId" ) )
@@ -280,17 +294,6 @@
{
packaging = getBodyText();
}
- else if ( rawName.equals( "repository" ) )
- {
- insideRepository = false;
- }
- }
- else if ( insideRepository )
- {
- if ( rawName.equals( "url" ) )
- {
- remoteRepositories.add( getBodyText() );
- }
}
bodyText = new StringBuffer();
1.1
maven-components/maven-mboot2/src/main/java/model/Repository.java
Index: Repository.java
===================================================================
package model;
/*
* 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 java.io.File;
/**
* Repository path management.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Brett Porter</a>
* @version $Id: Repository.java,v 1.1 2005/04/04 05:08:45 brett Exp $
*/
public class Repository
{
private String basedir;
public static final String LAYOUT_LEGACY = "legacy";
private String layout = LAYOUT_LEGACY;
public Repository()
{
}
public Repository( String basedir, String layout )
{
this.basedir = basedir;
this.layout = layout;
}
public File getArtifactFile( String groupId, String artifactId, String
version, String type )
{
Dependency d = new Dependency( groupId, artifactId, version, type );
return getArtifactFile( d );
}
public File getArtifactFile( Dependency dependency )
{
String repositoryPath = getArtifactPath( dependency );
return new File( basedir, repositoryPath );
}
public String getArtifactPath( Dependency dependency )
{
String repositoryPath;
if ( LAYOUT_LEGACY.equals( layout ) )
{
repositoryPath = dependency.getArtifactDirectory() + "/" +
dependency.getType() + "s/" +
dependency.getArtifact();
}
else
{
throw new IllegalStateException( "Unknown layout: " + layout );
}
return repositoryPath;
}
public File getMetadataFile( String groupId, String artifactId, String
version, String type, String filename )
{
Dependency d = new Dependency( groupId, artifactId, version, type );
String repositoryPath;
if ( LAYOUT_LEGACY.equals( layout ) )
{
repositoryPath = d.getArtifactDirectory() + "/poms/" + filename;
}
else
{
throw new IllegalStateException( "Unknown layout: " + layout );
}
return new File( basedir, repositoryPath );
}
public String toString()
{
return basedir;
}
public String getBasedir()
{
return basedir;
}
public void setBasedir( String basedir )
{
this.basedir = basedir;
}
public void setLayout( String layout )
{
this.layout = layout;
}
}
1.86 +86 -67 maven-components/maven-mboot2/src/main/java/MBoot.java
Index: MBoot.java
===================================================================
RCS file: /home/cvs/maven-components/maven-mboot2/src/main/java/MBoot.java,v
retrieving revision 1.85
retrieving revision 1.86
diff -u -r1.85 -r1.86
--- MBoot.java 4 Apr 2005 02:57:27 -0000 1.85
+++ MBoot.java 4 Apr 2005 05:08:45 -0000 1.86
@@ -5,6 +5,7 @@
import jar.JarMojo;
import model.Dependency;
import model.ModelReader;
+import model.Repository;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import test.SurefirePlugin;
@@ -18,6 +19,7 @@
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
+import java.io.IOException;
import java.io.StringReader;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
@@ -91,10 +93,6 @@
private ArtifactDownloader downloader;
- private String repoLocal;
-
- private List coreDeps;
-
private boolean online = true;
private static final String SCOPE_TEST = "test";
@@ -138,8 +136,6 @@
public void run( String[] args )
throws Exception
{
- ModelReader reader = new ModelReader( downloader );
-
String mavenRepoLocal = System.getProperty( "maven.repo.local" );
SettingsReader userModelReader = new SettingsReader();
@@ -202,7 +198,16 @@
System.out.println( "HOWEVER, since you did not specify a
repository path, maven will use: " +
repoDir.getAbsolutePath() + " to store
artifacts locally." );
}
- repoLocal = mavenRepoLocal;
+
+ File repoLocalFile = new File( mavenRepoLocal );
+ repoLocalFile.mkdirs();
+
+ if ( !repoLocalFile.canWrite() )
+ {
+ System.err.println( "Can't write to " + mavenRepoLocal );
+
+ System.exit( 1 );
+ }
String mavenHome = null;
@@ -235,9 +240,13 @@
online = false;
}
+ Repository localRepository = new Repository( mavenRepoLocal,
Repository.LAYOUT_LEGACY );
+
+ ModelReader reader = new ModelReader( localRepository );
+
if ( online )
{
- downloader = new ArtifactDownloader( repoLocal,
reader.getRemoteRepositories() );
+ downloader = new ArtifactDownloader( localRepository,
reader.getRemoteRepositories() );
if ( userModelReader.getActiveProxy() != null )
{
Proxy proxy = userModelReader.getActiveProxy();
@@ -245,34 +254,38 @@
}
}
- reader = new ModelReader( downloader );
+ reader = new ModelReader( localRepository );
String basedir = System.getProperty( "user.dir" );
reader.parse( new File( basedir, "maven-mboot2/pom.xml" ) );
- ClassLoader bootstrapClassLoader =
createClassloaderFromDependencies( reader.getDependencies(), null );
+ ClassLoader bootstrapClassLoader =
createClassloaderFromDependencies( reader.getDependencies(), null,
+
localRepository );
- reader = new ModelReader( downloader );
+ reader = new ModelReader( localRepository );
reader.parse( new File( basedir,
"maven-plugins/maven-surefire-plugin/pom.xml" ) );
List surefireDependencies = reader.getDependencies();
- reader = new ModelReader( downloader );
+ reader = new ModelReader( localRepository );
// Install maven-components POM
- installPomFile( repoLocal, new File( basedir, "pom.xml" ) );
+ installPomFile( localRepository, new File( basedir, "pom.xml" ) );
// Install plugin-parent POM
- installPomFile( repoLocal, new File( basedir,
"maven-plugins/pom.xml" ) );
+ installPomFile( localRepository, new File( basedir,
"maven-plugins/pom.xml" ) );
// Install plugin-tools-parent POM
- installPomFile( repoLocal, new File( basedir,
"maven-plugin-tools/pom.xml" ) );
+ installPomFile( localRepository, new File( basedir,
"maven-plugin-tools/pom.xml" ) );
// Install maven-script-parent POM
- installPomFile( repoLocal, new File( basedir, "maven-script/pom.xml"
) );
+ installPomFile( localRepository, new File( basedir,
"maven-script/pom.xml" ) );
// Install it-support POM
- installPomFile( repoLocal, new File( basedir,
"maven-core-it-support/pom.xml" ) );
+ installPomFile( localRepository, new File( basedir,
"maven-core-it-support/pom.xml" ) );
+
+ List coreDeps = null;
+ Dependency corePom = null;
for ( int i = 0; i < builds.length; i++ )
{
@@ -284,21 +297,25 @@
System.setProperty( "basedir", directory );
- reader = buildProject( directory, builds[i],
bootstrapClassLoader, surefireDependencies );
+ reader = buildProject( directory, builds[i],
bootstrapClassLoader, surefireDependencies, localRepository );
if ( reader.getArtifactId().equals( "maven-core" ) )
{
coreDeps = reader.getDependencies();
+ corePom = new Dependency( reader.getGroupId(),
reader.getArtifactId(), reader.getVersion(),
+ reader.getPackaging() );
}
System.out.println(
"--------------------------------------------------------------------" );
}
- reader = new ModelReader( downloader );
+ reader = new ModelReader( localRepository );
reader.parse( new File( basedir,
"maven-plugin-tools/maven-plugin-tools-pluggy/pom.xml" ) );
List dependencies = new ArrayList( reader.getDependencies() );
- dependencies.add( new Dependency( reader.getGroupId(),
reader.getArtifactId(), reader.getVersion() ) );
- IsolatedClassLoader cl = createClassloaderFromDependencies(
dependencies, bootstrapClassLoader );
+ dependencies.add(
+ new Dependency( reader.getGroupId(), reader.getArtifactId(),
reader.getVersion(), reader.getPackaging() ) );
+ IsolatedClassLoader cl = createClassloaderFromDependencies(
dependencies, bootstrapClassLoader,
+
localRepository );
for ( int i = 0; i < pluginBuilds.length; i++ )
{
@@ -310,7 +327,7 @@
System.setProperty( "basedir", directory );
- reader = buildProject( directory, pluginBuilds[i], cl,
surefireDependencies );
+ reader = buildProject( directory, pluginBuilds[i], cl,
surefireDependencies, localRepository );
System.out.println(
"--------------------------------------------------------------------" );
}
@@ -370,7 +387,7 @@
{
Dependency d = (Dependency) i.next();
- File source = new File( repoLocal, d.getRepositoryPath() );
+ File source = localRepository.getArtifactFile( d );
if ( d.getArtifactId().equals( "classworlds" ) )
{
FileUtils.copyFileToDirectory( source, boot );
@@ -386,9 +403,7 @@
}
// Copy maven itself
-
- // TODO: create a dependency object
- FileUtils.copyFileToDirectory( new File( repoLocal,
"org.apache.maven/jars/maven-core-2.0-SNAPSHOT.jar" ), lib );
+ FileUtils.copyFileToDirectory( localRepository.getArtifactFile(
corePom ), lib );
System.out.println();
@@ -429,13 +444,13 @@
System.out.println( "Finished at: " + fullStop );
}
- public ModelReader buildProject( String basedir, String projectId,
ClassLoader classLoader,
- List surefireDependencies )
+ private ModelReader buildProject( String basedir, String projectId,
ClassLoader classLoader,
+ List surefireDependencies, Repository
localRepository )
throws Exception
{
System.out.println( "Building project in " + basedir );
- ModelReader reader = new ModelReader( downloader );
+ ModelReader reader = new ModelReader( localRepository );
if ( !reader.parse( new File( basedir, "pom.xml" ) ) )
{
@@ -532,11 +547,12 @@
if ( new File( generatedSources ).exists() )
{
- compile( reader.getDependencies(), sources, classes, null,
generatedSources, SCOPE_COMPILE );
+ compile( reader.getDependencies(), sources, classes, null,
generatedSources, SCOPE_COMPILE,
+ localRepository );
}
else
{
- compile( reader.getDependencies(), sources, classes, null, null,
SCOPE_COMPILE );
+ compile( reader.getDependencies(), sources, classes, null, null,
SCOPE_COMPILE, localRepository );
}
//
----------------------------------------------------------------------
@@ -548,7 +564,7 @@
System.out.println( "Generating maven plugin descriptor ..." );
generatePluginDescriptor( sources, new File( classes,
"META-INF/maven" ).getAbsolutePath(),
- new File( basedir, "pom.xml"
).getAbsolutePath(), classLoader );
+ new File( basedir, "pom.xml"
).getAbsolutePath(), classLoader, localRepository );
}
//
----------------------------------------------------------------------
@@ -567,7 +583,7 @@
List testDependencies = reader.getDependencies();
- compile( testDependencies, testSources, testClasses, classes, null,
SCOPE_TEST );
+ compile( testDependencies, testSources, testClasses, classes, null,
SCOPE_TEST, localRepository );
//
----------------------------------------------------------------------
// Test resources
@@ -581,7 +597,7 @@
// Run tests
//
----------------------------------------------------------------------
- runTests( basedir, classes, testClasses, reader,
surefireDependencies );
+ runTests( basedir, classes, testClasses, reader,
surefireDependencies, localRepository );
//
----------------------------------------------------------------------
// Create JAR
@@ -589,30 +605,32 @@
createJar( classes, buildDir, reader );
- installPom( basedir, repoLocal, reader );
+ installPom( basedir, localRepository, reader );
String artifactId = reader.getArtifactId();
if ( !artifactId.equals( "maven-plugin" ) && artifactId.endsWith(
"plugin" ) )
{
- install( basedir, repoLocal, reader, "maven-plugin" );
+ install( basedir, localRepository, reader, "maven-plugin" );
}
else
{
- install( basedir, repoLocal, reader, "jar" );
+ install( basedir, localRepository, reader, "jar" );
}
return reader;
}
- private void generatePluginDescriptor( String sourceDirectory, String
outputDirectory, String pom, ClassLoader cl )
+ private void generatePluginDescriptor( String sourceDirectory, String
outputDirectory, String pom, ClassLoader cl,
+ Repository localRepository )
throws Exception
{
Class cls = cl.loadClass(
"org.apache.maven.tools.plugin.pluggy.Main" );
Method m = cls.getMethod( "main", new Class[]{String[].class} );
- String[] args = {"descriptor", sourceDirectory, outputDirectory,
pom, repoLocal};
+ // Can pluggy really cope with the layout?
+ String[] args = {"descriptor", sourceDirectory, outputDirectory,
pom, localRepository.getBasedir()};
m.invoke( null, new Object[]{args} );
}
@@ -638,7 +656,8 @@
Thread.currentThread().setContextClassLoader( old );
}
- private IsolatedClassLoader createClassloaderFromDependencies( List
dependencies, ClassLoader parent )
+ private IsolatedClassLoader createClassloaderFromDependencies( List
dependencies, ClassLoader parent,
+
Repository localRepository )
throws Exception
{
if ( online )
@@ -662,7 +681,7 @@
{
Dependency dependency = (Dependency) i.next();
- File f = new File( repoLocal, dependency.getRepositoryPath() );
+ File f = localRepository.getArtifactFile( dependency );
if ( !f.exists() )
{
String msg = ( !online ? "; run again online" : "; there was
a problem downloading it earlier" );
@@ -687,10 +706,10 @@
jarMojo.execute( new File( classes ), buildDir, artifactId + "-" +
version );
}
- private void installPomFile( String repoLocal, File pomIn )
+ private void installPomFile( Repository localRepository, File pomIn )
throws Exception
{
- ModelReader reader = new ModelReader( downloader );
+ ModelReader reader = new ModelReader( localRepository );
if ( !reader.parse( pomIn ) )
{
@@ -699,21 +718,18 @@
System.exit( 1 );
}
- String artifactId = reader.getArtifactId();
-
- String version = reader.getVersion();
-
- String groupId = reader.getGroupId();
-
- File pom = new File( repoLocal, "/" + groupId + "/poms/" +
artifactId + "-" + version + ".pom" );
+ installPomFile( reader, localRepository, pomIn );
+ }
- System.out.println( "Installing POM: " + pom );
+ private void installPom( String basedir, Repository localRepository,
ModelReader reader )
+ throws Exception
+ {
+ installPomFile( reader, localRepository, new File( basedir,
"pom.xml" ) );
- FileUtils.copyFile( pomIn, pom );
}
- private void installPom( String basedir, String repoLocal, ModelReader
reader )
- throws Exception
+ private void installPomFile( ModelReader reader, Repository
localRepository, File source )
+ throws IOException
{
String artifactId = reader.getArtifactId();
@@ -721,14 +737,14 @@
String groupId = reader.getGroupId();
- File pom = new File( repoLocal, "/" + groupId + "/poms/" +
artifactId + "-" + version + ".pom" );
+ File pom = localRepository.getArtifactFile( groupId, artifactId,
version, "pom" );
System.out.println( "Installing POM: " + pom );
- FileUtils.copyFile( new File( basedir, "pom.xml" ), pom );
+ FileUtils.copyFile( source, pom );
}
- private void install( String basedir, String repoLocal, ModelReader
reader, String type )
+ private void install( String basedir, Repository localRepository,
ModelReader reader, String type )
throws Exception
{
String artifactId = reader.getArtifactId();
@@ -739,22 +755,24 @@
String finalName = artifactId + "-" + version;
- File file = new File( repoLocal, "/" + groupId + "/" + type + "s/" +
finalName + ".jar" );
+ File file = localRepository.getArtifactFile( groupId, artifactId,
version, type );
System.out.println( "Installing: " + file );
- FileUtils.copyFile( new File( basedir, BUILD_DIR + "/" + finalName +
".jar" ), file );
-
if ( version.indexOf( "SNAPSHOT" ) >= 0 )
{
- File metadata = new File( repoLocal, "/" + groupId + "/poms/" +
finalName + ".version.txt" );
+ File metadata = localRepository.getMetadataFile( groupId,
artifactId, version, type,
+ finalName +
".version.txt" );
IOUtil.copy( new StringReader( version ), new FileWriter(
metadata ) );
}
+
+ FileUtils.copyFile( new File( basedir, BUILD_DIR + "/" + finalName +
".jar" ), file );
+
}
private void runTests( String basedir, String classes, String
testClasses, ModelReader reader,
- List surefireDependencies )
+ List surefireDependencies, Repository
localRepository )
throws Exception
{
SurefirePlugin testRunner = new SurefirePlugin();
@@ -776,7 +794,7 @@
List depList = new ArrayList( reader.getDependencies() );
depList.addAll( surefireDependencies );
- List classpath = classpath( depList, null, SCOPE_TEST );
+ List classpath = classpath( depList, null, SCOPE_TEST,
localRepository );
classpath.add( classes );
classpath.add( testClasses );
boolean success = testRunner.execute( basedir, includes, excludes,
classpath, reportsDir );
@@ -791,7 +809,7 @@
// Compile
// ----------------------------------------------------------------------
- private List classpath( List dependencies, String extraClasspath, String
scope )
+ private List classpath( List dependencies, String extraClasspath, String
scope, Repository localRepository )
{
List classpath = new ArrayList( dependencies.size() + 1 );
@@ -799,7 +817,7 @@
{
Dependency d = (Dependency) dependencies.get( i );
- String element = repoLocal + "/" + d.getRepositoryPath();
+ String element = localRepository.getArtifactFile( d
).getAbsolutePath();
if ( SCOPE_COMPILE.equals( scope ) )
{
@@ -827,7 +845,7 @@
}
private void compile( List dependencies, String sourceDirectory, String
outputDirectory, String extraClasspath,
- String generatedSources, String scope )
+ String generatedSources, String scope, Repository
localRepository )
throws Exception
{
JavacCompiler compiler = new JavacCompiler();
@@ -861,7 +879,8 @@
CompilerConfiguration compilerConfiguration = new
CompilerConfiguration();
compilerConfiguration.setOutputLocation( outputDirectory );
- compilerConfiguration.setClasspathEntries( classpath(
dependencies, extraClasspath, scope ) );
+ compilerConfiguration.setClasspathEntries(
+ classpath( dependencies, extraClasspath, scope,
localRepository ) );
compilerConfiguration.setSourceLocations( Arrays.asList(
sourceDirectories ) );
/* Compile with debugging info */