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 ); } } // ----------------------------------------------------------------------
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 ); } }
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 ); }
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 Artifact createArtifactWithClassifier( String groupId, String artifactId, String version, String type, String classifier ) throws MavenEmbedderException { try { RepositorySystem repositorySystem = lookup( RepositorySystem.class ); return repositorySystem.createArtifactWithClassifier( groupId, artifactId, version, type, classifier ); } catch ( ComponentLookupException e ) { throw new MavenEmbedderException(e.getMessage(), e); } }
public Artifact createArtifact( String groupId, String artifactId, String version, String scope, String type ) throws MavenEmbedderException { try { RepositorySystem repositorySystem = lookup( RepositorySystem.class ); return repositorySystem.createArtifact( groupId, artifactId, version, scope, type ); } catch ( ComponentLookupException e ) { throw new MavenEmbedderException(e.getMessage(), e); } }
@Override public void deploy(MavenEmbedder embedder, ArtifactRepository deploymentRepository, TaskListener listener) throws MavenEmbedderException, IOException, ComponentLookupException, ArtifactDeploymentException { ArtifactHandlerManager handlerManager = embedder.lookup(ArtifactHandlerManager.class); ArtifactFactory factory = embedder.lookup(ArtifactFactory.class); PrintStream logger = listener.getLogger(); boolean maven3orLater = MavenUtil.maven3orLater(parent.getModuleSetBuild().getMavenVersionUsed()); if (!deploymentRepository.isUniqueVersion() && maven3orLater) { logger.println("uniqueVersion == false is not anymore supported in maven 3"); ((WrappedArtifactRepository) deploymentRepository).setUniqueVersion( true ); } Artifact main = mainArtifact.toArtifact(handlerManager,factory,parent); if(!isPOM()) main.addMetadata(new ProjectArtifactMetadata(main,pomArtifact.getFile(parent))); // deploy the main artifact. This also deploys the POM logger.println(Messages.MavenArtifact_DeployingMainArtifact(main.getFile().getName())); deployMavenArtifact( main, deploymentRepository, embedder ); for (MavenArtifact aa : attachedArtifacts) { Artifact a = aa.toArtifact(handlerManager,factory, parent); logger.println(Messages.MavenArtifact_DeployingAttachedArtifact(a.getFile().getName())); deployMavenArtifact( a, deploymentRepository, embedder ); } }
/** * Installs the artifact to the local Maven repository. */ public void install(MavenEmbedder embedder) throws MavenEmbedderException, IOException, ComponentLookupException, ArtifactInstallationException { ArtifactHandlerManager handlerManager = embedder.lookup(ArtifactHandlerManager.class); ArtifactInstaller installer = embedder.lookup(ArtifactInstaller.class); ArtifactFactory factory = embedder.lookup(ArtifactFactory.class); Artifact main = mainArtifact.toArtifact(handlerManager,factory,parent); if(!isPOM()) main.addMetadata(new ProjectArtifactMetadata(main,pomArtifact.getFile(parent))); installer.install(mainArtifact.getFile(parent),main,embedder.getLocalRepository()); for (MavenArtifact aa : attachedArtifacts) installer.install(aa.getFile(parent),aa.toArtifact(handlerManager,factory,parent),embedder.getLocalRepository()); }
protected void perform(TaskListener listener) throws Exception { try { MavenEmbedder embedder = MavenUtil.createEmbedder(listener,getBuild()); ArtifactRepositoryLayout layout = (ArtifactRepositoryLayout) embedder.lookup( ArtifactRepositoryLayout.class,"default"); ArtifactRepositoryFactory factory = (ArtifactRepositoryFactory) embedder.lookup(ArtifactRepositoryFactory.ROLE); ArtifactRepository repository = factory.createDeploymentArtifactRepository( id, repositoryUrl, layout, uniqueVersion); WrappedArtifactRepository repo = new WrappedArtifactRepository(repository, uniqueVersion); deploy(embedder,repo,listener); record.result = Result.SUCCESS; } finally { if(record.result==null) record.result = Result.FAILURE; // persist the record getBuild().save(); } } }.start();
protected void perform(TaskListener listener) throws Exception { try { MavenEmbedder embedder = MavenUtil.createEmbedder(listener,getBuild()); ArtifactRepositoryLayout layout = embedder.lookup( ArtifactRepositoryLayout.class,"default"); ArtifactRepositoryFactory factory = (ArtifactRepositoryFactory) embedder.lookup(ArtifactRepositoryFactory.ROLE); ArtifactRepository repository = factory.createDeploymentArtifactRepository( id, repositoryUrl, layout, uniqueVersion); WrappedArtifactRepository repo = new WrappedArtifactRepository(repository, uniqueVersion); deploy(embedder,repo,listener); record.result = Result.SUCCESS; } finally { if(record.result==null) record.result = Result.FAILURE; // persist the record getBuild().save(); } } }.start();
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 ); } }
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); } }
MavenEmbedder embedder = createEmbedder(listener, build); ArtifactRepositoryLayout layout = (ArtifactRepositoryLayout) embedder.lookup(ArtifactRepositoryLayout.ROLE, "default"); ArtifactRepositoryFactory factory = (ArtifactRepositoryFactory) embedder.lookup(ArtifactRepositoryFactory.ROLE); ArtifactRepository artifactRepository = null; if (url != null) {
@Override public void deploy(MavenEmbedder embedder, ArtifactRepository deploymentRepository, TaskListener listener) throws MavenEmbedderException, IOException, ComponentLookupException, ArtifactDeploymentException { ArtifactHandlerManager handlerManager = embedder.lookup(ArtifactHandlerManager.class); ArtifactFactory artifactFactory = embedder.lookup(ArtifactFactory.class); PrintStream logger = listener.getLogger(); boolean maven3orLater = MavenUtil.maven3orLater(parent.getModuleSetBuild().getMavenVersionUsed()); deployer = embedder.lookup(ArtifactDeployer.class, uniqueVersion ? "default" : "maven2"); logger.println( "[INFO] Deployment in " + deploymentRepository.getUrl() + " (id=" + deploymentRepository.getId() + ",uniqueVersion=" + deploymentRepository.isUniqueVersion()+")");
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 ); } }
lookup( MavenExecutionRequestPopulator.class ).populateFromSettings( this.mavenExecutionRequest, getSettings() ); lookup( MavenExecutionRequestPopulator.class ).populateDefaults( mavenExecutionRequest ); } catch ( MavenExecutionRequestPopulationException e ) { throw new MavenEmbedderException( e.getMessage(), e ); lookup( Logger.class ).setThreshold( 0 );