MavenEmbedder embedder = new MavenEmbedder(getClass().getClassLoader(), null); for( String dep : dependencies.split(",")) { String[] tokens = dep.split(":"); } else { Artifact a; a = embedder.createArtifact(groupId, artifactId, version, "compile"/*doesn't matter*/, "hpi"); try { embedder.resolve(a, Arrays.asList(embedder.createRepository("http://maven.glassfish.org/content/groups/public/","repo")),embedder.getLocalRepository()); dependencyJar = a.getFile(); } catch (AbstractArtifactResolutionException x) {
public List<MavenProject> collectProjects( File basedir, String[] includes, String[] excludes ) throws MojoExecutionException, MavenEmbedderException { List<MavenProject> projects = new ArrayList<MavenProject>(); List<File> poms = getPomFiles( basedir, includes, excludes ); for ( File pom : poms ) { try { MavenProject p = readProject( pom ); projects.add( p ); } catch ( ProjectBuildingException e ) { throw new MojoExecutionException( "Error loading " + pom, e ); } } return projects; }
protected void deployMavenArtifact(Artifact artifact, ArtifactRepository deploymentRepository, MavenEmbedder embedder) throws ArtifactDeploymentException, ComponentLookupException { ArtifactDeployer deployer = embedder.lookup(ArtifactDeployer.class,"maven2"); deployer.deploy(artifact.getFile(),artifact,deploymentRepository,embedder.getLocalRepository()); } /**
public ArtifactRepository getLocalRepository() throws ComponentLookupException { try { String localRepositoryPath = getLocalRepositoryPath(); if ( localRepositoryPath != null ) { return lookup( RepositorySystem.class ).createLocalRepository( new File( localRepositoryPath ) ); } return lookup( RepositorySystem.class ).createLocalRepository( RepositorySystem.defaultUserLocalRepository ); } catch ( InvalidRepositoryException e ) { // never happened throw new IllegalStateException( e ); } }
lookup( MavenExecutionRequestPopulator.class ).populateFromSettings( this.mavenExecutionRequest, getSettings() ); lookup( MavenExecutionRequestPopulator.class ).populateDefaults( mavenExecutionRequest ); } catch ( MavenExecutionRequestPopulationException e ) { throw new MavenEmbedderException( e.getMessage(), e ); ArtifactRepository localRepository = getLocalRepository(); this.mavenExecutionRequest.setLocalRepository( localRepository ); this.mavenExecutionRequest.setLocalRepositoryPath( localRepository.getBasedir() ); this.mavenExecutionRequest.getSystemProperties().putAll( this.mavenRequest.getSystemProperties() ); this.mavenExecutionRequest.getSystemProperties().putAll( getEnvVars() ); lookup( Logger.class ).setThreshold( 0 );
mps = embedder.readProjects( pom,!this.nonRecursive ); MavenProject mavenProject = embedder.readProject( pom ); rootProject = mavenProject; mps.add( mavenProject );
public MavenExecutionResult execute( MavenRequest mavenRequest ) throws ComponentLookupException { Maven maven = lookup( Maven.class ); ClassLoader original = Thread.currentThread().getContextClassLoader(); try { Thread.currentThread().setContextClassLoader( this.plexusContainer.getContainerRealm() ); return maven.execute( mavenExecutionRequest ); } finally { Thread.currentThread().setContextClassLoader( original ); } } // ----------------------------------------------------------------------
private void readChilds(MavenProject mp, MavenEmbedder mavenEmbedder, List<MavenProject> mavenProjects, ReactorReader reactorReader) throws ProjectBuildingException, MavenEmbedderException { if (mp.getModules() == null || mp.getModules().isEmpty()) { return; } for (String module : mp.getModules()) { if ( Util.fixEmptyAndTrim( module ) != null ) { File pomFile = new File(mp.getFile().getParent(), module); MavenProject mavenProject2 = null; // take care of HUDSON-8445 if (pomFile.isFile() && pomFile.exists()) mavenProject2 = mavenEmbedder.readProject( pomFile ); else mavenProject2 = mavenEmbedder.readProject( new File(mp.getFile().getParent(), module + "/pom.xml") ); mavenProjects.add( mavenProject2 ); reactorReader.addProject( mavenProject2 ); readChilds( mavenProject2, mavenEmbedder, mavenProjects, reactorReader ); } } }
public ArtifactRepository createLocalRepository( String url, String repositoryId ) throws ComponentLookupException { if ( !url.startsWith( "file:" ) ) { url = "file://" + url; } return createRepository( url, repositoryId ); }
MavenEmbedder maven = new MavenEmbedder( mavenEmbedderClassLoader, mavenRequest );
public void start() throws MavenEmbedderException detectUserInstallation(); activeProfiles(); createMavenSettings(); localRepository = createLocalRepository( settings ); resolveParameters(wagonManager,settings);
private MavenEmbedder( File mavenHome, MavenRequest mavenRequest, PlexusContainer plexusContainer ) throws MavenEmbedderException { this.mavenHome = mavenHome; this.mavenRequest = mavenRequest; this.plexusContainer = plexusContainer; try { this.buildMavenExecutionRequest(); RepositorySystemSession rss = ((DefaultMaven) lookup(Maven.class)).newRepositorySession(mavenExecutionRequest); mavenSession = new MavenSession( plexusContainer, rss, mavenExecutionRequest, new DefaultMavenExecutionResult() ); lookup(LegacySupport.class).setSession(mavenSession); } catch (MavenEmbedderException e) { throw new MavenEmbedderException(e.getMessage(), e); } catch (ComponentLookupException e) { throw new MavenEmbedderException(e.getMessage(), e); } }
public List<ProjectBuildingResult> buildProjects( File mavenProject, boolean recursive ) throws ProjectBuildingException, MavenEmbedderException { ClassLoader originalCl = Thread.currentThread().getContextClassLoader(); try { Thread.currentThread().setContextClassLoader( this.plexusContainer.getContainerRealm() ); ProjectBuilder projectBuilder = lookup( ProjectBuilder.class ); ProjectBuildingRequest projectBuildingRequest = this.mavenExecutionRequest.getProjectBuildingRequest(); projectBuildingRequest.setValidationLevel( this.mavenRequest.getValidationLevel() ); RepositorySystemSession repositorySystemSession = buildRepositorySystemSession(); projectBuildingRequest.setRepositorySession( repositorySystemSession ); projectBuildingRequest.setProcessPlugins( this.mavenRequest.isProcessPlugins() ); projectBuildingRequest.setResolveDependencies( this.mavenRequest.isResolveDependencies() ); List<ProjectBuildingResult> results = projectBuilder.build( Arrays.asList(mavenProject), recursive, projectBuildingRequest ); return results; } catch(ComponentLookupException e) { throw new MavenEmbedderException(e.getMessage(), e); } finally { Thread.currentThread().setContextClassLoader( originalCl ); } }
public Settings getSettings() throws MavenEmbedderException, ComponentLookupException { SettingsBuildingRequest settingsBuildingRequest = new DefaultSettingsBuildingRequest(); if ( this.mavenRequest.getGlobalSettingsFile() != null ) { settingsBuildingRequest.setGlobalSettingsFile( new File( this.mavenRequest.getGlobalSettingsFile() ) ); } else { settingsBuildingRequest.setGlobalSettingsFile( MavenCli.DEFAULT_GLOBAL_SETTINGS_FILE ); } if ( this.mavenRequest.getUserSettingsFile() != null ) { settingsBuildingRequest.setUserSettingsFile( new File( this.mavenRequest.getUserSettingsFile() ) ); } else { settingsBuildingRequest.setUserSettingsFile( MavenCli.DEFAULT_USER_SETTINGS_FILE ); } settingsBuildingRequest.setUserProperties( this.mavenRequest.getUserProperties() ); settingsBuildingRequest.getSystemProperties().putAll( System.getProperties() ); settingsBuildingRequest.getSystemProperties().putAll( this.mavenRequest.getSystemProperties() ); settingsBuildingRequest.getSystemProperties().putAll( getEnvVars() ); try { return lookup( SettingsBuilder.class ).build( settingsBuildingRequest ).getEffectiveSettings(); } catch ( SettingsBuildingException e ) { throw new MavenEmbedderException( e.getMessage(), e ); } }
public MavenProject readProject( File mavenProject ) throws ProjectBuildingException, MavenEmbedderException { List<MavenProject> projects = readProjects( mavenProject, false ); return projects == null || projects.isEmpty() ? null : projects.get( 0 ); }
public ArtifactRepository createLocalRepository( File localRepository ) throws ComponentLookupException { return createLocalRepository( localRepository.getAbsolutePath(), DEFAULT_LOCAL_REPO_ID ); }
mps = embedder.readProjects( pom,!this.nonRecursive ); MavenProject mavenProject = embedder.readProject( pom ); rootProject = mavenProject; mps.add( mavenProject );
public ArtifactRepository createRepository( String url, String repositoryId ) throws ComponentLookupException { // snapshots vs releases // offline = to turning the update policy off //TODO: we'll need to allow finer grained creation of repositories but this will do for now String updatePolicyFlag = ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS; String checksumPolicyFlag = ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN; ArtifactRepositoryPolicy snapshotsPolicy = new ArtifactRepositoryPolicy( true, updatePolicyFlag, checksumPolicyFlag ); ArtifactRepositoryPolicy releasesPolicy = new ArtifactRepositoryPolicy( true, updatePolicyFlag, checksumPolicyFlag ); RepositorySystem repositorySystem = lookup( RepositorySystem.class ); ArtifactRepositoryLayout repositoryLayout = lookup( ArtifactRepositoryLayout.class, "default" ); return repositorySystem.createArtifactRepository( repositoryId, url, repositoryLayout, snapshotsPolicy, releasesPolicy ); }
private void readChilds(MavenProject mp, MavenEmbedder mavenEmbedder, List<MavenProject> mavenProjects, ReactorReader reactorReader) throws ProjectBuildingException, MavenEmbedderException { if (mp.getModules() == null || mp.getModules().isEmpty()) { return; } for (String module : mp.getModules()) { if ( Util.fixEmptyAndTrim( module ) != null ) { File pomFile = new File(mp.getFile().getParent(), module); MavenProject mavenProject2 = null; // take care of HUDSON-8445 if (pomFile.isFile()) mavenProject2 = mavenEmbedder.readProject( pomFile ); else mavenProject2 = mavenEmbedder.readProject( new File(mp.getFile().getParent(), module + "/pom.xml") ); mavenProjects.add( mavenProject2 ); reactorReader.addProject( mavenProject2 ); readChilds( mavenProject2, mavenEmbedder, mavenProjects, reactorReader ); } } }
public ArtifactRepository createLocalRepository( String url, String repositoryId ) throws ComponentLookupException { if ( !url.startsWith( "file:" ) ) { url = "file://" + url; } return createRepository( url, repositoryId ); }