Search in sources :

Example 6 with Artifact

use of org.eclipse.aether.artifact.Artifact in project buck by facebook.

the class Publisher method publish.

/**
   * @param descriptor an {@link Artifact}, holding the maven coordinates for the published files
   *                   less the extension that is to be derived from the files.
   *                   The {@code descriptor} itself will not be published as is, and the
   *                   {@link File} attached to it (if any) will be ignored.
   * @param toPublish {@link File}(s) to be published using the given coordinates. The filename
   *                  extension of each given file will be used as a maven "extension" coordinate
   */
public DeployResult publish(Artifact descriptor, List<File> toPublish) throws DeploymentException {
    String providedExtension = descriptor.getExtension();
    if (!providedExtension.isEmpty()) {
        LOG.warn("Provided extension %s of artifact %s to be published will be ignored. The extensions " + "of the provided file(s) will be used", providedExtension, descriptor);
    }
    List<Artifact> artifacts = new ArrayList<>(toPublish.size());
    for (File file : toPublish) {
        artifacts.add(new SubArtifact(descriptor, descriptor.getClassifier(), Files.getFileExtension(file.getAbsolutePath()), file));
    }
    return publish(artifacts);
}
Also used : SubArtifact(org.eclipse.aether.util.artifact.SubArtifact) ArrayList(java.util.ArrayList) File(java.io.File) SubArtifact(org.eclipse.aether.util.artifact.SubArtifact) DefaultArtifact(org.eclipse.aether.artifact.DefaultArtifact) Artifact(org.eclipse.aether.artifact.Artifact)

Example 7 with Artifact

use of org.eclipse.aether.artifact.Artifact in project buck by facebook.

the class Resolver method getDependenciesFromPom.

private ImmutableList<Dependency> getDependenciesFromPom(Model model) {
    return model.getDependencies().stream().map(dep -> {
        ArtifactType stereotype = session.getArtifactTypeRegistry().get(dep.getType());
        if (stereotype == null) {
            stereotype = new DefaultArtifactType(dep.getType());
        }
        Map<String, String> props = null;
        boolean system = dep.getSystemPath() != null && dep.getSystemPath().length() > 0;
        if (system) {
            props = ImmutableMap.of(ArtifactProperties.LOCAL_PATH, dep.getSystemPath());
        }
        @SuppressWarnings("PMD.PrematureDeclaration") DefaultArtifact artifact = new DefaultArtifact(dep.getGroupId(), dep.getArtifactId(), dep.getClassifier(), null, dep.getVersion(), props, stereotype);
        ImmutableList<Exclusion> exclusions = FluentIterable.from(dep.getExclusions()).transform(input -> {
            String group = input.getGroupId();
            String artifact1 = input.getArtifactId();
            group = (group == null || group.length() == 0) ? "*" : group;
            artifact1 = (artifact1 == null || artifact1.length() == 0) ? "*" : artifact1;
            return new Exclusion(group, artifact1, "*", "*");
        }).toList();
        return new Dependency(artifact, dep.getScope(), dep.isOptional(), exclusions);
    }).collect(MoreCollectors.toImmutableList());
}
Also used : ServiceLocator(org.eclipse.aether.spi.locator.ServiceLocator) STGroupString(org.stringtemplate.v4.STGroupString) DefaultDependencyManagementInjector(org.apache.maven.model.management.DefaultDependencyManagementInjector) SortedSet(java.util.SortedSet) DependencyFilterUtils(org.eclipse.aether.util.filter.DependencyFilterUtils) Version(org.eclipse.aether.version.Version) URL(java.net.URL) TEST(org.eclipse.aether.util.artifact.JavaScopes.TEST) DefaultModelBuilderFactory(org.apache.maven.model.building.DefaultModelBuilderFactory) ArtifactDescriptorException(org.eclipse.aether.resolution.ArtifactDescriptorException) Matcher(java.util.regex.Matcher) ModelBuilder(org.apache.maven.model.building.ModelBuilder) FluentIterable(com.google.common.collect.FluentIterable) DefaultProfileSelector(org.apache.maven.model.profile.DefaultProfileSelector) SubArtifact(org.eclipse.aether.util.artifact.SubArtifact) Map(java.util.Map) DefaultArtifactType(org.eclipse.aether.artifact.DefaultArtifactType) Path(java.nio.file.Path) ImmutableSetMultimap(com.google.common.collect.ImmutableSetMultimap) DefaultDependencyManagementImporter(org.apache.maven.model.composition.DefaultDependencyManagementImporter) LocalRepository(org.eclipse.aether.repository.LocalRepository) Function(com.google.common.base.Function) ImmutableMap(com.google.common.collect.ImmutableMap) RepositoryPolicy(org.eclipse.aether.repository.RepositoryPolicy) Collection(java.util.Collection) Artifact(org.eclipse.aether.artifact.Artifact) Executors(java.util.concurrent.Executors) Objects(java.util.Objects) CmdLineException(org.kohsuke.args4j.CmdLineException) List(java.util.List) ModelBuildingResult(org.apache.maven.model.building.ModelBuildingResult) ST(org.stringtemplate.v4.ST) ArtifactRequest(org.eclipse.aether.resolution.ArtifactRequest) Optional(java.util.Optional) Pattern(java.util.regex.Pattern) ArtifactDescriptorResult(org.eclipse.aether.resolution.ArtifactDescriptorResult) DependencyResult(org.eclipse.aether.resolution.DependencyResult) ListeningExecutorService(com.google.common.util.concurrent.ListeningExecutorService) Model(org.apache.maven.model.Model) RepositorySystem(org.eclipse.aether.RepositorySystem) DependencyFilter(org.eclipse.aether.graph.DependencyFilter) MoreExecutors(com.google.common.util.concurrent.MoreExecutors) ArtifactDescriptorRequest(org.eclipse.aether.resolution.ArtifactDescriptorRequest) ListenableFuture(com.google.common.util.concurrent.ListenableFuture) VersionScheme(org.eclipse.aether.version.VersionScheme) ArtifactProperties(org.eclipse.aether.artifact.ArtifactProperties) Dependency(org.eclipse.aether.graph.Dependency) JavaScopes(org.eclipse.aether.util.artifact.JavaScopes) MutableDirectedGraph(com.facebook.buck.graph.MutableDirectedGraph) GenericVersionScheme(org.eclipse.aether.util.version.GenericVersionScheme) Callable(java.util.concurrent.Callable) TraversableGraph(com.facebook.buck.graph.TraversableGraph) RepositorySystemSession(org.eclipse.aether.RepositorySystemSession) TreeSet(java.util.TreeSet) ArtifactType(org.eclipse.aether.artifact.ArtifactType) ImmutableList(com.google.common.collect.ImmutableList) ImmutableSortedMap(com.google.common.collect.ImmutableSortedMap) Nullable(javax.annotation.Nullable) MoreCollectors(com.facebook.buck.util.MoreCollectors) ArtifactResolutionException(org.eclipse.aether.resolution.ArtifactResolutionException) ImmutableSortedSet(com.google.common.collect.ImmutableSortedSet) CollectRequest(org.eclipse.aether.collection.CollectRequest) Resources(com.google.common.io.Resources) DefaultPluginConfigurationExpander(org.apache.maven.model.plugin.DefaultPluginConfigurationExpander) DefaultArtifact(org.eclipse.aether.artifact.DefaultArtifact) Files(java.nio.file.Files) UTF_8(java.nio.charset.StandardCharsets.UTF_8) ModelBuildingException(org.apache.maven.model.building.ModelBuildingException) MostExecutors(com.facebook.buck.util.concurrent.MostExecutors) MavenRepositorySystemUtils(org.apache.maven.repository.internal.MavenRepositorySystemUtils) IOException(java.io.IOException) ArtifactResult(org.eclipse.aether.resolution.ArtifactResult) DependencyRequest(org.eclipse.aether.resolution.DependencyRequest) Maps(com.google.common.collect.Maps) DefaultRepositorySystemSession(org.eclipse.aether.DefaultRepositorySystemSession) InvalidVersionSpecificationException(org.eclipse.aether.version.InvalidVersionSpecificationException) ExecutionException(java.util.concurrent.ExecutionException) MorePaths(com.facebook.buck.io.MorePaths) RemoteRepository(org.eclipse.aether.repository.RemoteRepository) Futures(com.google.common.util.concurrent.Futures) Ordering(com.google.common.collect.Ordering) RepositoryException(org.eclipse.aether.RepositoryException) Paths(java.nio.file.Paths) DefaultPluginManagementInjector(org.apache.maven.model.management.DefaultPluginManagementInjector) DefaultModelBuildingRequest(org.apache.maven.model.building.DefaultModelBuildingRequest) Exclusion(org.eclipse.aether.graph.Exclusion) Preconditions(com.google.common.base.Preconditions) VisibleForTesting(com.google.common.annotations.VisibleForTesting) DefaultArtifactType(org.eclipse.aether.artifact.DefaultArtifactType) ArtifactType(org.eclipse.aether.artifact.ArtifactType) ImmutableList(com.google.common.collect.ImmutableList) Exclusion(org.eclipse.aether.graph.Exclusion) DefaultArtifactType(org.eclipse.aether.artifact.DefaultArtifactType) STGroupString(org.stringtemplate.v4.STGroupString) Dependency(org.eclipse.aether.graph.Dependency) Map(java.util.Map) ImmutableMap(com.google.common.collect.ImmutableMap) ImmutableSortedMap(com.google.common.collect.ImmutableSortedMap) DefaultArtifact(org.eclipse.aether.artifact.DefaultArtifact)

Example 8 with Artifact

use of org.eclipse.aether.artifact.Artifact in project buck by facebook.

the class Resolver method resolveLib.

private Prebuilt resolveLib(Artifact artifact, Path project) throws ArtifactResolutionException, IOException {
    Artifact jar = new DefaultArtifact(artifact.getGroupId(), artifact.getArtifactId(), "jar", artifact.getVersion());
    Path relativePath = resolveArtifact(jar, project);
    Prebuilt library = new Prebuilt(jar.getArtifactId(), jar.toString(), relativePath);
    downloadSources(jar, project, library);
    return library;
}
Also used : Path(java.nio.file.Path) SubArtifact(org.eclipse.aether.util.artifact.SubArtifact) Artifact(org.eclipse.aether.artifact.Artifact) DefaultArtifact(org.eclipse.aether.artifact.DefaultArtifact) DefaultArtifact(org.eclipse.aether.artifact.DefaultArtifact)

Example 9 with Artifact

use of org.eclipse.aether.artifact.Artifact in project buck by facebook.

the class Resolver method downloadSources.

private void downloadSources(Artifact artifact, Path project, Prebuilt library) throws IOException {
    Artifact srcs = new SubArtifact(artifact, "sources", "jar");
    try {
        Path relativePath = resolveArtifact(srcs, project);
        library.setSourceJar(relativePath);
    } catch (ArtifactResolutionException e) {
        System.err.println("Skipping sources for: " + srcs);
    }
}
Also used : Path(java.nio.file.Path) ArtifactResolutionException(org.eclipse.aether.resolution.ArtifactResolutionException) SubArtifact(org.eclipse.aether.util.artifact.SubArtifact) SubArtifact(org.eclipse.aether.util.artifact.SubArtifact) Artifact(org.eclipse.aether.artifact.Artifact) DefaultArtifact(org.eclipse.aether.artifact.DefaultArtifact)

Example 10 with Artifact

use of org.eclipse.aether.artifact.Artifact in project buck by facebook.

the class Resolver method getRunTimeTransitiveDeps.

private ImmutableMap<String, Artifact> getRunTimeTransitiveDeps(Iterable<Dependency> mavenCoords) throws RepositoryException {
    CollectRequest collectRequest = new CollectRequest();
    collectRequest.setRequestContext(JavaScopes.RUNTIME);
    collectRequest.setRepositories(repos);
    for (Dependency dep : mavenCoords) {
        collectRequest.addDependency(dep);
    }
    DependencyFilter filter = DependencyFilterUtils.classpathFilter(JavaScopes.RUNTIME);
    DependencyRequest dependencyRequest = new DependencyRequest(collectRequest, filter);
    DependencyResult dependencyResult = repoSys.resolveDependencies(session, dependencyRequest);
    ImmutableSortedMap.Builder<String, Artifact> knownDeps = ImmutableSortedMap.naturalOrder();
    for (ArtifactResult artifactResult : dependencyResult.getArtifactResults()) {
        Artifact node = artifactResult.getArtifact();
        knownDeps.put(buildKey(node), node);
    }
    return knownDeps.build();
}
Also used : DependencyRequest(org.eclipse.aether.resolution.DependencyRequest) DependencyResult(org.eclipse.aether.resolution.DependencyResult) ImmutableSortedMap(com.google.common.collect.ImmutableSortedMap) DependencyFilter(org.eclipse.aether.graph.DependencyFilter) Dependency(org.eclipse.aether.graph.Dependency) STGroupString(org.stringtemplate.v4.STGroupString) CollectRequest(org.eclipse.aether.collection.CollectRequest) SubArtifact(org.eclipse.aether.util.artifact.SubArtifact) Artifact(org.eclipse.aether.artifact.Artifact) DefaultArtifact(org.eclipse.aether.artifact.DefaultArtifact) ArtifactResult(org.eclipse.aether.resolution.ArtifactResult)

Aggregations

Artifact (org.eclipse.aether.artifact.Artifact)36 DefaultArtifact (org.eclipse.aether.artifact.DefaultArtifact)29 File (java.io.File)10 SubArtifact (org.eclipse.aether.util.artifact.SubArtifact)9 IOException (java.io.IOException)8 Dependency (org.eclipse.aether.graph.Dependency)8 ArtifactResolutionException (org.eclipse.aether.resolution.ArtifactResolutionException)8 ArtifactResult (org.eclipse.aether.resolution.ArtifactResult)7 Path (java.nio.file.Path)6 DefaultRepositorySystemSession (org.eclipse.aether.DefaultRepositorySystemSession)6 DependencyRequest (org.eclipse.aether.resolution.DependencyRequest)6 ArrayList (java.util.ArrayList)5 CollectRequest (org.eclipse.aether.collection.CollectRequest)5 RemoteRepository (org.eclipse.aether.repository.RemoteRepository)5 STGroupString (org.stringtemplate.v4.STGroupString)5 Jar (aQute.bnd.osgi.Jar)4 URISyntaxException (java.net.URISyntaxException)4 List (java.util.List)4 ArtifactRequest (org.eclipse.aether.resolution.ArtifactRequest)4 ImmutableList (com.google.common.collect.ImmutableList)3