List of usage examples for org.apache.maven.project MavenProject getRemoteArtifactRepositories
public List<ArtifactRepository> getRemoteArtifactRepositories()
From source file:org.sourcepit.maven.dependency.model.aether.AetherDependencyModelResolver.java
License:Apache License
private MavenProject filterUnconnectableRepos(MavenProject project) { final RepositorySystemSession repositorySession = buildContext.getRepositorySession(); final List<ArtifactRepository> repositories = project.getRemoteArtifactRepositories(); final List<ArtifactRepository> validRepositories = new ArrayList<ArtifactRepository>(); final List<ArtifactRepository> invalidRepositories = new ArrayList<ArtifactRepository>(); for (ArtifactRepository artifactRepository : repositories) { try {// w w w .j a v a 2s.c o m repositoryConnectorProvider.newRepositoryConnector(repositorySession, toRepo(artifactRepository)); validRepositories.add(artifactRepository); } catch (NoRepositoryConnectorException e) { invalidRepositories.add(artifactRepository); } } if (!invalidRepositories.isEmpty()) { project = project.clone(); project.setRemoteArtifactRepositories(validRepositories); } return project; }
From source file:org.sourcepit.maven.dependency.model.aether.AetherDependencyModelResolver.java
License:Apache License
private ProjectBuildingRequest newProjectBuildingRequest(boolean resolveDeps, boolean processPlugins) { final ProjectBuildingRequest request = new DefaultProjectBuildingRequest( buildContext.getSession().getProjectBuildingRequest()); request.setResolveDependencies(resolveDeps); request.setProcessPlugins(processPlugins); request.setProject(null);// w w w . ja v a 2 s . c o m final MavenProject project = buildContext.getSession().getCurrentProject(); if (project != null) { @SuppressWarnings("unchecked") List<ArtifactRepository> artifactRepos = combine(project.getRemoteArtifactRepositories(), request.getRemoteRepositories()); @SuppressWarnings("unchecked") List<ArtifactRepository> pluginRepos = combine(project.getPluginArtifactRepositories(), request.getPluginArtifactRepositories()); request.setRemoteRepositories(artifactRepos); request.setPluginArtifactRepositories(pluginRepos); } return request; }
From source file:org.sourcepit.osgifier.maven.context.MavenDependencyWalker.java
License:Apache License
private Set<Artifact> resolve(Request walkerRequest, Artifact artifact, MavenProject resolutionContext, boolean resolveRoot, List<Dependency> dependencies) { final ArtifactResolutionRequest request = new ArtifactResolutionRequest(); request.setArtifact(artifact);//ww w. j av a 2s.c om request.setResolveRoot(resolveRoot); request.setResolveTransitively(!resolveRoot); if (dependencies != null) { final Set<Artifact> artifactDependencies = new LinkedHashSet<Artifact>(); for (Dependency dependency : dependencies) { artifactDependencies.add(repositorySystem.createArtifactWithClassifier(dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion(), dependency.getType(), dependency.getClassifier())); } request.setArtifactDependencies(artifactDependencies); } request.setLocalRepository(walkerRequest.getLocalRepository()); final List<ArtifactRepository> remoteRepositories = new ArrayList<ArtifactRepository>(); final Set<String> repoIds = new HashSet<String>(); final List<ArtifactRepository> requestRepos = walkerRequest.getRemoteRepositories(); if (requestRepos != null) { for (ArtifactRepository artifactRepository : requestRepos) { repoIds.add(artifactRepository.getId()); remoteRepositories.add(artifactRepository); } } if (resolutionContext != null) { for (ArtifactRepository artifactRepository : resolutionContext.getRemoteArtifactRepositories()) { if (repoIds.add(artifactRepository.getId())) { remoteRepositories.add(artifactRepository); } } request.setManagedVersionMap(resolutionContext.getManagedVersionMap()); } request.setRemoteRepositories(remoteRepositories); final ArtifactFilter artifactFilter = walkerRequest.getArtifactFilter(); request.setCollectionFilter(artifactFilter); request.setResolutionFilter(artifactFilter); ArtifactResolutionResult result = repositorySystem.resolve(request); final Exception ex; if (result.hasExceptions()) { ex = result.getExceptions().get(0); } else if (result.hasCircularDependencyExceptions()) { ex = result.getCircularDependencyException(0); } else if (result.hasErrorArtifactExceptions()) { ex = result.getErrorArtifactExceptions().get(0); } else if (result.hasMetadataResolutionExceptions()) { ex = result.getMetadataResolutionException(0); } else { ex = null; } if (ex != null) { throw new IllegalStateException(ex); } for (Artifact missingArtifact : result.getMissingArtifacts()) { throw Exceptions.pipe(new ArtifactNotFoundException("Unable to resolve artifact", missingArtifact)); } return result.getArtifacts(); }
From source file:org.sourcepit.tpmp.LocalizeTargetPlatformMojo.java
License:Apache License
private void download(MavenSession session, MavenProject project, File parentDir) { final Artifact platformArtifact = createPlatformArtifact(project); final ArtifactResolutionRequest request = new ArtifactResolutionRequest(); request.setArtifact(platformArtifact); request.setResolveRoot(true);//from w ww. j a va 2 s . c o m request.setResolveTransitively(false); request.setLocalRepository(session.getLocalRepository()); request.setRemoteRepositories(project.getRemoteArtifactRepositories()); request.setManagedVersionMap(project.getManagedVersionMap()); request.setOffline(session.isOffline()); repositorySystem.resolve(request); if (platformArtifact.getFile().exists()) { final ZipProcessingRequest unzipRequest = ZipProcessingRequest .newUnzipRequest(platformArtifact.getFile(), parentDir); try { new ZipProcessor().process(unzipRequest); } catch (IOException e) { throw Exceptions.pipe(e); } } }
From source file:org.sourcepit.tpmp.resolver.tycho.TychoSessionTargetPlatformResolver.java
License:Apache License
private MavenProject setupAggregatedProject(MavenSession session, TargetPlatformConfiguration aggregatedConfiguration) { PropertiesMap mvnProperties = new LinkedPropertiesMap(); mvnProperties.load(getClass().getClassLoader(), "META-INF/tpmp/maven.properties"); String groupId = mvnProperties.get("groupId"); String artifactId = mvnProperties.get("artifactId"); String version = mvnProperties.get("version"); final String tpmpKey = Plugin.constructKey(groupId, artifactId); MavenProject origin = session.getCurrentProject(); Model model = origin.getModel().clone(); Build build = model.getBuild();/* w w w. ja v a 2s . c o m*/ if (build.getPluginsAsMap().get(tpmpKey) == null) { Plugin tpmp = new Plugin(); tpmp.setGroupId(groupId); tpmp.setArtifactId(artifactId); tpmp.setVersion(version); build.getPlugins().add(tpmp); build.flushPluginMap(); } MavenProject fake = new MavenProject(model); fake.setClassRealm(origin.getClassRealm()); fake.setFile(origin.getFile()); final Map<String, ArtifactRepository> artifactRepositories = new LinkedHashMap<String, ArtifactRepository>(); final Map<String, ArtifactRepository> pluginRepositories = new LinkedHashMap<String, ArtifactRepository>(); for (MavenProject project : session.getProjects()) { for (ArtifactRepository repository : project.getRemoteArtifactRepositories()) { if (!artifactRepositories.containsKey(repository.getId())) { artifactRepositories.put(repository.getId(), repository); } } for (ArtifactRepository repository : project.getPluginArtifactRepositories()) { if (!pluginRepositories.containsKey(repository.getId())) { pluginRepositories.put(repository.getId(), repository); } } } fake.setRemoteArtifactRepositories(new ArrayList<ArtifactRepository>(artifactRepositories.values())); fake.setPluginArtifactRepositories(new ArrayList<ArtifactRepository>(pluginRepositories.values())); fake.setManagedVersionMap(origin.getManagedVersionMap()); if (getTychoProject(fake) == null) { fake.setPackaging("eclipse-repository"); } fake.getBuildPlugins(); AbstractTychoProject tychoProject = (AbstractTychoProject) getTychoProject(fake); tychoProject.setupProject(session, fake); Properties properties = new Properties(); properties.putAll(fake.getProperties()); properties.putAll(session.getSystemProperties()); // session wins properties.putAll(session.getUserProperties()); fake.setContextValue(TychoConstants.CTX_MERGED_PROPERTIES, properties); fake.setContextValue(TychoConstants.CTX_TARGET_PLATFORM_CONFIGURATION, aggregatedConfiguration); ExecutionEnvironmentConfiguration eeConfiguration = new ExecutionEnvironmentConfigurationImpl(logger, aggregatedConfiguration.isResolveWithEEConstraints()); tychoProject.readExecutionEnvironmentConfiguration(fake, eeConfiguration); fake.setContextValue(TychoConstants.CTX_EXECUTION_ENVIRONMENT_CONFIGURATION, eeConfiguration); final DependencyMetadata dm = new DependencyMetadata(); for (ReactorProject reactorProject : DefaultReactorProject.adapt(session)) { mergeMetadata(dm, reactorProject, true); mergeMetadata(dm, reactorProject, false); } int i = 0; for (Object object : dm.getMetadata(true)) { InstallableUnitDAO dao = new TychoSourceIUResolver.InstallableUnitDAO( object.getClass().getClassLoader()); dao.setProperty(object, RepositoryLayoutHelper.PROP_CLASSIFIER, "fake_" + i); i++; } for (Object object : dm.getMetadata(false)) { InstallableUnitDAO dao = new TychoSourceIUResolver.InstallableUnitDAO( object.getClass().getClassLoader()); dao.setProperty(object, RepositoryLayoutHelper.PROP_CLASSIFIER, "fake_" + i); i++; } Map<String, DependencyMetadata> metadata = new LinkedHashMap<String, DependencyMetadata>(); metadata.put(null, dm); fake.setContextValue("tpmp.aggregatedMetadata", metadata); return fake; }
From source file:org.springframework.ide.eclipse.maven.legacy.internal.core.GoogleProjectConfigurator.java
License:Open Source License
/** * {@inheritDoc}//from w w w .ja v a 2 s . c om */ @Override protected void doConfigure(final MavenProject mavenProject, IProject project, ProjectConfigurationRequest request, final IProgressMonitor monitor) throws CoreException { final IMaven maven = MavenPlugin.getDefault().getMaven(); configureNature(project, mavenProject, GAE_NATURE_ID, true, new NatureCallbackAdapter() { @Override public void beforeAddingNature() { try { DefaultMavenExecutionRequest executionRequest = new DefaultMavenExecutionRequest(); executionRequest.setBaseDirectory(mavenProject.getBasedir()); executionRequest.setLocalRepository(maven.getLocalRepository()); executionRequest.setRemoteRepositories(mavenProject.getRemoteArtifactRepositories()); executionRequest.setPluginArtifactRepositories(mavenProject.getPluginArtifactRepositories()); executionRequest.setPom(mavenProject.getFile()); executionRequest.setGoals(GAE_UNPACK_GOAL); MavenExecutionResult result = maven.execute(executionRequest, monitor); if (result.hasExceptions()) { MavenCorePlugin.getDefault().getLog() .log(new Status(IStatus.ERROR, MavenCorePlugin.NON_LEGACY_PLUGIN_ID, "Error configuring project", result.getExceptions().get(0))); } } catch (CoreException e) { MavenCorePlugin.getDefault().getLog().log(new Status(IStatus.ERROR, MavenCorePlugin.NON_LEGACY_PLUGIN_ID, "Error configuring project", e)); } } }, monitor); if (configureNature(project, mavenProject, GWT_NATURE_ID, true, new NatureCallbackAdapter() { @Override public void beforeAddingNature() { // Get the GWT version from the project pom String gwtVersion = null; List<Dependency> dependencies = mavenProject.getDependencies(); for (Dependency dependency : dependencies) { if (GWT_GROUP_ID.equals(dependency.getGroupId()) && ("gwt-user".equals(dependency.getArtifactId()) || "gwt-servlet".equals(dependency.getArtifactId()))) { gwtVersion = dependency.getVersion(); break; } } // Check that the pom.xml has GWT dependencies if (StringUtils.hasLength(gwtVersion)) { try { // Download and install the gwt-dev.jar into the local repository maven.resolve(GWT_GROUP_ID, "gwt-dev", gwtVersion, "jar", null, mavenProject.getRemoteArtifactRepositories(), monitor); } catch (CoreException e) { MavenCorePlugin.getDefault().getLog().log(new Status(IStatus.ERROR, MavenCorePlugin.NON_LEGACY_PLUGIN_ID, "Error configuring project", e)); } } } }, monitor)) { try { // Add GWT Web Application configuration parameters IEclipsePreferences prefs = SpringCorePreferences .getProjectPreferences(project, "com.google.gdt.eclipse.core").getProjectPreferences(); prefs.put("warSrcDir", "src/main/webapp"); prefs.putBoolean("warSrcDirIsOutput", false); String artifactId = mavenProject.getArtifactId(); String version = mavenProject.getVersion(); IPath location = SpringCoreUtils.getProjectLocation(project); if (location != null && artifactId != null && version != null) { prefs.put("lastWarOutDir", location.append("target").append(artifactId + "-" + version).toFile() .getAbsolutePath()); } prefs.flush(); } catch (BackingStoreException e) { MavenCorePlugin.getDefault().getLog().log(new Status(IStatus.ERROR, MavenCorePlugin.NON_LEGACY_PLUGIN_ID, "Error configuring project", e)); } } }
From source file:org.springframework.ide.vscode.commons.maven.java.MavenProjectClasspath.java
License:Open Source License
private ImmutableList<CPE> resolveClasspathEntries(MavenProject project) throws Exception { LinkedHashSet<CPE> entries = new LinkedHashSet<>(); safe(() -> maven.getJreLibs().forEach(path -> safe(() -> { CPE cpe = CPE.binary(path.toString()); String javaVersion = maven.getJavaRuntimeMinorVersion(); if (javaVersion == null) { javaVersion = "8"; }//w ww . ja va2 s . c o m cpe.setJavadocContainerUrl(new URL("https://docs.oracle.com/javase/" + javaVersion + "/docs/api/")); cpe.setSystem(true); entries.add(cpe); // Add at the end, not critical if throws exception, but the CPE needs to be around regardless if the below throws Path sources = JavaUtils.jreSources(path); if (sources != null) { cpe.setSourceContainerUrl(sources.toUri().toURL()); } }))); //Add jar dependencies... for (Artifact a : projectDependencies(project)) { File f = a.getFile(); if (f != null) { CPE cpe = CPE.binary(a.getFile().toPath().toString()); safe(() -> { //add javadoc Artifact jdoc = maven.getJavadoc(a, project.getRemoteArtifactRepositories()); if (jdoc != null) { cpe.setJavadocContainerUrl(jdoc.getFile().toURI().toURL()); } }); safe(() -> { //add source Artifact source = maven.getSources(a, project.getRemoteArtifactRepositories()); if (source != null) { cpe.setSourceContainerUrl(source.getFile().toURI().toURL()); } }); entries.add(cpe); } } //Add source folders... { //main/java File sourceFolder = new File(project.getBuild().getSourceDirectory()); File outputFolder = new File(project.getBuild().getOutputDirectory()); CPE cpe = CPE.source(sourceFolder, outputFolder); cpe.setOwn(true); safe(() -> { String reportingDir = project.getModel().getReporting().getOutputDirectory(); if (reportingDir != null) { File apidocs = new File(new File(reportingDir), "apidocs"); cpe.setJavadocContainerUrl(apidocs.toURI().toURL()); } }); entries.add(cpe); } { //main/resources for (Resource resource : project.getBuild().getResources()) { File sourceFolder = new File(resource.getDirectory()); String targetPath = resource.getTargetPath(); if (targetPath == null) { targetPath = project.getBuild().getOutputDirectory(); } CPE cpe = CPE.source(sourceFolder, new File(targetPath)); cpe.setOwn(true); entries.add(cpe); } } { //test/resources for (Resource resource : project.getBuild().getTestResources()) { File sourceFolder = new File(resource.getDirectory()); String targetPath = resource.getTargetPath(); if (targetPath == null) { targetPath = project.getBuild().getTestOutputDirectory(); } CPE cpe = CPE.source(sourceFolder, targetPath == null ? null : new File(targetPath)); cpe.setOwn(true); entries.add(cpe); } } { //test/java File sourceFolder = new File(project.getBuild().getTestSourceDirectory()); File outputFolder = new File(project.getBuild().getTestOutputDirectory()); CPE cpe = CPE.source(sourceFolder, outputFolder); cpe.setOwn(true); safe(() -> { String reportingDir = project.getModel().getReporting().getOutputDirectory(); if (reportingDir != null) { File apidocs = new File(new File(reportingDir), "apidocs"); cpe.setJavadocContainerUrl(apidocs.toURI().toURL()); } }); entries.add(cpe); } return ImmutableList.copyOf(entries); }
From source file:org.springframework.ide.vscode.commons.maven.MavenBridge.java
License:Open Source License
MavenProject resolveParentProject(RepositorySystemSession repositorySession, MavenProject child, ProjectBuildingRequest configuration) throws MavenException { configuration.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL); configuration.setRepositorySession(repositorySession); try {/*from ww w . j ava 2s . co m*/ configuration.setRemoteRepositories(child.getRemoteArtifactRepositories()); File parentFile = child.getParentFile(); if (parentFile != null) { return lookup(ProjectBuilder.class).build(parentFile, configuration).getProject(); } Artifact parentArtifact = child.getParentArtifact(); if (parentArtifact != null) { MavenProject parent = lookup(ProjectBuilder.class).build(parentArtifact, configuration) .getProject(); parentFile = parentArtifact.getFile(); // file is resolved as // side-effect of the // prior call // compensate for apparent bug in maven 3.0.4 which does not set // parent.file and parent.artifact.file if (parent.getFile() == null) { parent.setFile(parentFile); } if (parent.getArtifact().getFile() == null) { parent.getArtifact().setFile(parentFile); } return parent; } } catch (ProjectBuildingException ex) { log.error("Could not read parent project", ex); } return null; }
From source file:org.springframework.ide.vscode.commons.maven.MavenCore.java
License:Open Source License
/** * Calculates dependency graph for a Maven project provided the scope. * * @param project Maven Project descriptor * @param scope Dependency scope// w w w .j a va2 s . c o m * @return Set of all dependencies including transient ones * @throws MavenException */ public Set<Artifact> resolveDependencies(MavenProject project, String scope) throws MavenException { MavenExecutionRequest request = maven.createExecutionRequest(); DefaultRepositorySystemSession session = maven.createRepositorySession(request); DependencyNode graph = readDependencyTree(maven.lookupComponent(org.eclipse.aether.RepositorySystem.class), session, project, scope); if (graph != null) { ArrayList<DependencyNode> dependencyNodes = new ArrayList<>(); graph.accept(new DependencyVisitor() { @Override public boolean visitEnter(DependencyNode node) { if (node.getDependency() != null) { dependencyNodes.add(node); } return true; } @Override public boolean visitLeave(DependencyNode dependencynode) { return true; } }); LinkedHashSet<Artifact> artifacts = new LinkedHashSet<>(); RepositoryUtils.toArtifacts(artifacts, dependencyNodes, Collections.singletonList(project.getArtifact().getId()), null); return artifacts.parallelStream().map(artifact -> { if (!artifact.isResolved()) { try { artifact = maven.resolve(artifact, project.getRemoteArtifactRepositories(), request); } catch (MavenException e) { log.error("", e); // Maven 2.x quirk: an artifact always points at the local repo, // regardless whether resolved or not LocalRepositoryManager lrm = session.getLocalRepositoryManager(); String path = lrm.getPathForLocalArtifact(RepositoryUtils.toArtifact(artifact)); artifact.setFile(new File(lrm.getRepository().getBasedir(), path)); } } return artifact; }).collect(Collectors.toSet()); } return Collections.emptySet(); }
From source file:org.universAAL.maven.treebuilder.ExecutionListCreator.java
License:Apache License
/** * Method builds dependency tree for a list of provision strings and * parameter specifying default transitiveness. Method validates format of * provision strings and parses them into representation acceptable by * DependencyTreeBuilder. DependencyTreeBuilder is invoked and its output is * returned.//from w w w . jav a 2s . c o m * * @return a dependency tree as a list of rootnodes (instances of RootNode * class) which contain their own subtrees. */ private List<RootNode> parseProvisionsAndBuiltTree(final String[] provisions, final boolean transitive, final DependencyTreeBuilder treeBuilder) throws Exception { MavenProjectDescriptor[] projectDescs = new MavenProjectDescriptor[provisions.length]; int i = 0; List<List> listOfRemoteRepositories = new ArrayList<List>(); for (String provision : provisions) { boolean localtransitive = transitive; String provisionNoHeader = provision; if (provision.startsWith("transitive:")) { provisionNoHeader = provision.substring("transitive:".length()); localtransitive = true; } else if (provision.startsWith("nontransitive:")) { provisionNoHeader = provision.substring("nontransitive:".length()); localtransitive = false; } Artifact pomArtifact = parseMvnUrl(provisionNoHeader); MavenProject pomProject = mavenProjectBuilder.buildFromRepository(pomArtifact, remoteRepositories, localRepository); List<ArtifactRepository> finalRemoteRepositories = addMissingRepositories( pomProject.getRemoteArtifactRepositories()); projectDescs[i] = new MavenProjectDescriptor(pomProject, finalRemoteRepositories, localtransitive); listOfRemoteRepositories.add(finalRemoteRepositories); i++; } List<RootNode> rootNodesOnly = treeBuilder.buildDependencyTree(localRepository, artifactFactory, artifactMetadataSource, projectDescs); Iterator<List> listOfRemoteRepositoriesIter = listOfRemoteRepositories.iterator(); if (listOfRemoteRepositories.size() != rootNodesOnly.size()) { throw new IllegalStateException("listOfRemoteRepositories.size() != rootNodesWithRepositories.size()"); } List<RootNode> rootNodesWithRepositories = new ArrayList(); for (RootNode rootNode : rootNodesOnly) { rootNode.remoteRepositories = listOfRemoteRepositoriesIter.next(); rootNodesWithRepositories.add(rootNode); } return rootNodesWithRepositories; }