public void resolve(BuildStrategy builder) { List<Artifact> initialArtifacts = new ArrayList<>(); initialArtifacts.addAll(mavenProject.getArtifacts()); if (pluginDependencies != null) { initialArtifacts.addAll(pluginDependencies); if (artifact.getClassifier() != null && artifact.getClassifier().equals("sources")) { artifacts.add(artifact); } else { artifacts.add(repositorySystem.createArtifactWithClassifier(artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), artifact.getType(), "sources")); ArtifactResolutionRequest request = new ArtifactResolutionRequest() .setLocalRepository(localRepository) .setRemoteRepositories(new ArrayList<>(remoteRepositories)) .setArtifact(artifact); ArtifactResolutionResult result = repositorySystem.resolve(request); for (Artifact resolvedArtifact : result.getArtifacts()) { if (resolvedArtifact.getFile() != null) { File file = resolvedArtifact.getFile(); for (String sourceRoot : mavenProject.getCompileSourceRoots()) { builder.addSourcesDirectory(new File(sourceRoot).getAbsolutePath());
private String[] createDaemonClassPath() { Artifact toolArtifact = pluginArtifacts.stream() .filter(artifact -> artifact.getGroupId().equals("org.teavm") && artifact.getArtifactId().equals("teavm-tooling")) .findFirst() .orElse(null); if (toolArtifact == null) { return new String[0]; } ArtifactResolutionResult resolutionResult = repositorySystem.resolve(new ArtifactResolutionRequest() .setLocalRepository(localRepository) .setRemoteRepositories(new ArrayList<>(remoteRepositories)) .setResolveTransitively(true) .setResolveRoot(true) .setArtifact(toolArtifact)); if (!resolutionResult.isSuccess()) { return new String[0]; } return resolutionResult.getArtifacts().stream() .map(artifact -> artifact.getFile().getAbsolutePath()) .toArray(String[]::new); }
VersionRange previousRange = previous.getArtifact().getVersionRange(); VersionRange currentRange = node.getArtifact().getVersionRange(); newRange ); previous.getArtifact().setVersionRange( newRange ); node.getArtifact().setVersionRange( currentRange.restrict( previousRange ) ); throw new ArtifactResolutionException( "Unable to get dependency information: " + e.getMessage(), resetArtifact, request.getRemoteRepositories(), e ); previous.getArtifact() ); result.addVersionRangeViolation( are ); result.addVersionRangeViolation( e ); ArtifactResolutionRequest subRequest = new ArtifactResolutionRequest( metadataRequest ); subRequest.setServers( request.getServers() ); subRequest.setMirrors( request.getMirrors() ); subRequest.setProxies( request.getProxies() ); recurse( result, child, resolvedArtifacts, managedVersions, subRequest, source, filter, listeners, conflictResolvers );
@SuppressWarnings( "checkstyle:parameternumber" ) public ArtifactResolutionResult resolveTransitively( Set<Artifact> artifacts, Artifact originatingArtifact, Map<String, Artifact> managedVersions, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories, ArtifactMetadataSource source, ArtifactFilter filter, List<ResolutionListener> listeners, List<ConflictResolver> conflictResolvers ) throws ArtifactResolutionException, ArtifactNotFoundException { ArtifactResolutionRequest request = new ArtifactResolutionRequest(). setArtifact( originatingArtifact ). setResolveRoot( false ). // This is required by the surefire plugin setArtifactDependencies( artifacts ). setManagedVersionMap( managedVersions ). setLocalRepository( localRepository ). setRemoteRepositories( remoteRepositories ). setCollectionFilter( filter ). setListeners( listeners ); injectSession2( request, legacySupport.getSession() ); return resolveWithExceptions( request ); }
@SuppressWarnings( "checkstyle:parameternumber" ) public ArtifactResolutionResult collect( Set<Artifact> artifacts, Artifact originatingArtifact, Map<String, Artifact> managedVersions, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories, ArtifactMetadataSource source, ArtifactFilter filter, List<ResolutionListener> listeners, List<ConflictResolver> conflictResolvers ) { ArtifactResolutionRequest request = new ArtifactResolutionRequest(); request.setLocalRepository( localRepository ); request.setRemoteRepositories( remoteRepositories ); injectSession( request ); return collect( artifacts, originatingArtifact, managedVersions, request, source, filter, listeners, conflictResolvers ); }
if (groupId.equals(otherProject.getGroupId()) && artifactId.equals(otherProject.getArtifactId()) && version.equals(otherProject.getVersion())) { String fileName; if (classifier == null) { Artifact artifact = repositorySystem.createArtifactWithClassifier(groupId, artifactId, version, "target", classifier); ArtifactResolutionRequest request = new ArtifactResolutionRequest(); request.setArtifact(artifact); request.setLocalRepository(session.getLocalRepository()); request.setRemoteRepositories(project.getRemoteArtifactRepositories()); repositorySystem.resolve(request); if (!artifact.isResolved()) { throw new RuntimeException("Could not resolve target platform specification artifact " + artifact); targetFile = artifact.getFile();
ArtifactResolutionRequest request = new ArtifactResolutionRequest() .setArtifact(requiredArtifacts.iterator().next()) .setResolveRoot(true) .setResolveTransitively(true) .setArtifactDependencies(requiredArtifacts) .setLocalRepository(session.getLocalRepository()) .setRemoteRepositories(project.getRemoteArtifactRepositories()); ArtifactResolutionResult resolutionResult = repositorySystem.resolve(request); resolutionErrorHandler.throwErrors(request, resolutionResult); if (resolutionResult == null || resolutionResult.getArtifacts() == null) { throw new IllegalStateException("Annotation processing artifacts were not resolved."); List<String> apClasspath = new ArrayList<>(resolutionResult.getArtifacts().size()); String kaptCompilerPluginArtifact = null; for (Artifact artifact : resolutionResult.getArtifacts()) { if (artifact == null) { continue; if (artifact.getGroupId().equals(KAPT_DEPENDENCY.getGroupId()) && artifact.getArtifactId().equals(KAPT_DEPENDENCY.getArtifactId())) { kaptCompilerPluginArtifact = artifact.getFile().getAbsolutePath();
if (artifact.getGroupId().equals(rProject.getGroupId()) && artifact.getArtifactId().equals(rProject.getArtifactId()) && artifact.getVersion().equals(rProject.getVersion())) { Set<Artifact> artifacts = rProject.getArtifacts(); for (Artifact pArtifact : artifacts) { ArtifactResolutionRequest request = new ArtifactResolutionRequest(); request.setArtifact(artifact); request.setResolveRoot(true).setResolveTransitively(false); request.setServers(mavenSession.getRequest().getServers()); request.setMirrors(mavenSession.getRequest().getMirrors()); request.setProxies(mavenSession.getRequest().getProxies()); request.setLocalRepository(mavenSession.getLocalRepository()); request.setRemoteRepositories(mavenSession.getRequest().getRemoteRepositories()); ArtifactResolutionResult result = repositorySystem.resolve(request); Artifact resolvedArtifact = result.getOriginatingArtifact(); if (resolvedArtifact == null && !CollectionUtils.isEmpty(result.getArtifacts())) { resolvedArtifact = result.getArtifacts().iterator().next();
@Override public File resolveArtifact(String groupId, String artifactId, String version, String type) { String canonicalString = groupId + ":" + artifactId + ":" + type + ":" + version; Artifact art = repositorySystem.createArtifact(groupId, artifactId, version, type); ArtifactResolutionRequest request = new ArtifactResolutionRequest() .setArtifact(art) .setResolveRoot(true) .setOffline(false) .setRemoteRepositories(project.getRemoteArtifactRepositories()) .setResolveTransitively(false); ArtifactResolutionResult res = repositorySystem.resolve(request); if (!res.isSuccess()) { throw new IllegalStateException("Cannot resolve artifact " + canonicalString); } for (Artifact artifact : res.getArtifacts()) { if (artifact.getGroupId().equals(groupId) && artifact.getArtifactId().equals(artifactId) && artifact.getVersion().equals(version) && artifact.getType().equals(type)) { return artifact.getFile(); } } throw new IllegalStateException("Cannot find artifact " + canonicalString + " within the resolved resources"); }
Artifact root = system.createArtifact( parts[ 0 ], parts[ 1 ], parts[ 2 ], "pom" ); ArtifactResolutionResult result; result = system.resolve( new ArtifactResolutionRequest() .setArtifact( root ) .setCollectionFilter( new ArtifactFilter() { .setResolveRoot( true ) .setForceUpdate( true ) .setOffline( legacySupport.getSession().getRequest().isOffline() ) .setMirrors( legacySupport.getSession().getRequest().getMirrors() ) .setProxies( legacySupport.getSession().getRequest().getProxies() ) .setServers( legacySupport.getSession().getRequest().getServers()) .setLocalRepository( legacySupport.getSession().getRequest().getLocalRepository() ) .setRemoteRepositories( legacySupport.getSession().getRequest().getRemoteRepositories() ) .setResolveTransitively( true ) ); for( Artifact a: result.getArtifacts() ){ if ( "jar".equals( a.getType() ) && a.getFile() != null ){ URL url = a.getFile().toURI().toURL();
protected List<File> getModulesJARs() throws MojoExecutionException { List<String> resolved = new ArrayList<String>(); List<File> result = new ArrayList<File>(); ArtifactResolutionRequest request = new ArtifactResolutionRequest(); request.setLocalRepository(session.getRequest().getLocalRepository()); // TODO: manage remote repositories request.setRemoteRepositories(session.getRequest().getRemoteRepositories()); //request.setRemoteRepositories(remoteRepositories); for (Object a : project.getDependencyArtifacts()) { // dependencyArtifacts contains modules from Maven reactor Artifact artifact = (Artifact) a; if (BW6Utils.isBW6(artifact)) { if (!"system".equals(artifact.getScope()) || artifact.getFile() == null || !artifact.getFile().exists()) { request.setArtifact(artifact); ArtifactResolutionResult r = resolver.resolve(request); if (r.isSuccess()) { getLog().debug("Successfully resolved artifact '" + artifact.getGroupId() + ":" + artifact.getArtifactId() + "'"); } if (artifact.getFile() == null || !artifact.getFile().exists()) { throw new MojoExecutionException(Messages.DEPENDENCY_RESOLUTION_FAILED, new FileNotFoundException()); } getLog().debug(artifact.getFile().getAbsolutePath()); } result.add(artifact.getFile()); resolved.add(artifact.getArtifactId()+"-"+artifact.getVersion().replace("-SNAPSHOT", ".qualifier")); } } return result; }
private ArtifactResolutionResult resolve(boolean hasUpdate) throws MojoExecutionException { List<String> jars = loadJarsLock(); ArtifactResolutionRequest request = new ArtifactResolutionRequest(); Set<Artifact> artifacts = new HashSet<Artifact>(); for (String jar : jars) { Artifact a = createArtifact(jar, "jar"); if (a != null) { if (a.getArtifactId().equals(update)) { try { a.setVersionRange(VersionRange .createFromVersionSpec("[" + a.getVersion() + ",)")); } catch (InvalidVersionSpecificationException e) { request.setArtifactDependencies(artifacts); request.setResolveTransitively(false); request.setResolveRoot(false); request.setArtifact(project.getArtifact()); request.setLocalRepository(localRepository); request.setRemoteRepositories(project.getRemoteArtifactRepositories()); return repositorySystem.resolve(request);
private Capability findSharedModuleWithCapability(String name, String version) throws MojoExecutionException { if (mavenProject.getOriginalModel().getPackaging().equals(BW6CommonMojo.BW6_SHARED_MODULE_PACKAGING)) { List<String> capabilities; try { logger.info(mavenProject.getBasedir().getAbsolutePath()); logger.info(capabilities.toString()); for (String capability : capabilities) { File manifestSource = new File(this.mavenProject.getBasedir(), "META-INF/MANIFEST.MF"); try { ManifestManager.removeRequiredCapability(manifestSource, capabilityId); System.out.println(artifact.getArtifactId()); ArtifactResolutionRequest request = new ArtifactResolutionRequest(); request.setArtifact(artifact); request.setLocalRepository(localRepository); request.setRemoteRepositories(remoteRepositories); artifactResolver.resolve(request); if (artifact.getFile() != null) { if (!artifact.getFile().exists()) { artifact.setFile(new File(artifact.getFile().getAbsolutePath() + ".jar"));
if (this.artifactId != null && this.groupId != null && this.version != null) { final Artifact artifact = this.repositorySystem.createArtifactWithClassifier(this.groupId, this.artifactId, this.version, "jar", null); ArtifactResolutionRequest request = new ArtifactResolutionRequest().setArtifact(artifact) .setLocalRepository(this.localRepository) .setRemoteRepositories(this.project.getRemoteArtifactRepositories()); this.repositorySystem.resolve(request); try { final MavenProject project = projectFromArtifact(artifact); final Set<Artifact> artifacts = new LinkedHashSet<Artifact>(); getLog().info("artifacts=" + artifacts); request = new ArtifactResolutionRequest().setArtifact(artifact) .setLocalRepository(this.localRepository) .setRemoteRepositories(this.project.getRemoteArtifactRepositories()) .setManagedVersionMap(project.getManagedVersionMap()); final ArtifactResolutionResult arr = this.repositorySystem.resolve(request); gemify(project, arr.getArtifacts());
protected Artifact resolveJRubyStdlibArtifact(Artifact jruby) throws DependencyResolutionRequiredException, MojoExecutionException { final ArtifactResolutionRequest request = new ArtifactResolutionRequest(); for (final Dependency artifact : this.project.getDependencies()) { if (artifact.getArtifactId().equals(JRUBY_STDLIB) // TODO this condition is not needed ? && !artifact.getScope().equals(Artifact.SCOPE_PROVIDED) && !artifact.getScope().equals(Artifact.SCOPE_SYSTEM)) { request.setArtifact(this.repositorySystem .createArtifact(artifact.getGroupId(), artifact .getArtifactId(), artifact.getVersion(), artifact.getType())); break; } } if (request.getArtifact() == null){ request.setResolveTransitively(true); request.setArtifact(jruby); } request.setLocalRepository(this.localRepository); request.setRemoteRepositories(this.project.getRemoteArtifactRepositories()); Set<Artifact> set = this.repositorySystem.resolve(request).getArtifacts(); for (Artifact a: set){ if (JRUBY_STDLIB.equals(a.getArtifactId())) { return a; } } throw new MojoExecutionException("failed to resolve jruby stdlib artifact"); }
public List<String> getClasspathElements() throws MojoExecutionException { List<String> classpath = getClasspathComputer().computeClasspath(); if (extraClasspathElements != null) { ArtifactRepository localRepository = session.getLocalRepository(); List<ArtifactRepository> remoteRepositories = project.getRemoteArtifactRepositories(); for (ArtifactRef a : extraClasspathElements) { Artifact artifact = repositorySystem.createArtifact(a.getGroupId(), a.getArtifactId(), a.getVersion(), "jar"); ArtifactResolutionRequest request = new ArtifactResolutionRequest(); request.setArtifact( artifact ); request.setLocalRepository( localRepository ); request.setRemoteRepositories( remoteRepositories ); request.setResolveRoot( true ); request.setResolveTransitively( true ); ArtifactResolutionResult result = repositorySystem.resolve( request ); if (result.hasExceptions()) { throw new MojoExecutionException("Could not resolve extra classpath entry", result.getExceptions().get(0)); } for (Artifact b : result.getArtifacts()) { classpath.add(b.getFile().getAbsolutePath() + "[+**/*]"); } } } return classpath; }
private ClassLoader getProjectClassLoader() throws MojoExecutionException { try { List<String> classfiles = this.project.getCompileClasspathElements(); if (this.scanTestClasses) { classfiles.addAll(this.project.getTestClasspathElements()); ArtifactResolutionRequest sharedreq = new ArtifactResolutionRequest().setResolveRoot(true) .setResolveTransitively(true) .setLocalRepository(this.session.getLocalRepository()) .setRemoteRepositories(this.project.getRemoteArtifactRepositories()); Set<Artifact> artifacts = this.project.getDependencyArtifacts(); for (Artifact artifact : artifacts) { if (!Artifact.SCOPE_TEST.equalsIgnoreCase(artifact.getScope())) { ArtifactResolutionRequest request = new ArtifactResolutionRequest(sharedreq).setArtifact(artifact); ArtifactResolutionResult result = this.repositorySystem.resolve(request); if (result.isSuccess()) { File file = repository.find(artifact).getFile(); if (file != null && file.isFile() && file.canRead()) { classURLs.add(file.toURI().toURL());
private void resolveJarDepedencies(Set<Artifact> jars) { ArtifactResolutionRequest req = new ArtifactResolutionRequest() .setArtifact(project.getArtifact()) .setResolveRoot(false) .setArtifactDependencies(jars) .setResolveTransitively(true) .setLocalRepository(localRepository) .setRemoteRepositories(project.getRemoteArtifactRepositories()) .setCollectionFilter(new ArtifactFilter() { ArtifactResolutionResult result = this.repositorySystem.resolve(req); Set<Artifact> resolvedArtifacts = result.getArtifacts(); for( Artifact artifact : resolvedArtifacts ){ if (artifact.getScope() == null) artifact.setScope(scope); jars.add(artifact); else if (!"test".equals(artifact.getScope()) && !"provided".equals(artifact.getScope())) { artifact.setScope(scope); jars.add(artifact);
private ArtifactResolutionResult includeDependencies( MavenProject project, final GemArtifact artifact) throws IOException { ArtifactResolutionResult jarDependencyArtifacts = null; getLog().info("include dependencies? " + this.includeDependencies); if (this.includeDependencies) { final ArtifactFilter filter = new ArtifactFilter() { public boolean include(final Artifact candidate) { if (candidate == artifact) { return true; } final boolean result = (candidate.getType().equals("jar") && ("compile".equals(candidate.getScope()) || "runtime".equals(candidate.getScope()))); return result; } }; // remember file location since resolve will set it to // local-repository location final File artifactFile = artifact.getFile(); final ArtifactResolutionRequest request = new ArtifactResolutionRequest().setArtifact(project.getArtifact()) .setResolveRoot(false) .setLocalRepository(this.localRepository) .setRemoteRepositories(project.getRemoteArtifactRepositories()) .setCollectionFilter(filter) .setManagedVersionMap(project.getManagedVersionMap()) .setArtifactDependencies(project.getDependencyArtifacts()); jarDependencyArtifacts = this.repositorySystem.resolve(request); // keep the artifactFile on build directory artifact.setFile(artifactFile); } return jarDependencyArtifacts; }
private ArtifactResolutionResult resolveArtifact( Artifact providerArtifact, @Nullable Artifact excludeArtifact ) { ArtifactResolutionRequest request = new ArtifactResolutionRequest() .setArtifact( providerArtifact ) .setRemoteRepositories( remoteRepositories ) .setLocalRepository( localRepository ) .setResolveTransitively( true ); if ( excludeArtifact != null ) { String pattern = excludeArtifact.getGroupId() + ":" + excludeArtifact.getArtifactId(); request.setCollectionFilter( new ExcludesArtifactFilter( singletonList( pattern ) ) ); } return repositorySystem.resolve( request ); }