Search in sources :

Example 6 with ProjectDependency

use of org.gradle.api.artifacts.ProjectDependency in project gradle by gradle.

the class DefaultDependencyHandler method testFixtures.

@Override
public Dependency testFixtures(Object notation) {
    Dependency testFixturesDependency = create(notation);
    if (testFixturesDependency instanceof ProjectDependency) {
        ProjectDependency projectDependency = (ProjectDependency) testFixturesDependency;
        projectDependency.capabilities(new ProjectTestFixtures(projectDependency.getDependencyProject()));
    } else if (testFixturesDependency instanceof ModuleDependency) {
        ModuleDependency moduleDependency = (ModuleDependency) testFixturesDependency;
        moduleDependency.capabilities(capabilities -> capabilities.requireCapability(new ImmutableCapability(moduleDependency.getGroup(), moduleDependency.getName() + TEST_FIXTURES_CAPABILITY_APPENDIX, null)));
    }
    return testFixturesDependency;
}
Also used : ComponentModuleMetadataHandler(org.gradle.api.artifacts.dsl.ComponentModuleMetadataHandler) ExternalModuleDependency(org.gradle.api.artifacts.ExternalModuleDependency) ARTIFACT_TYPE_ATTRIBUTE(org.gradle.api.artifacts.type.ArtifactTypeDefinition.ARTIFACT_TYPE_ATTRIBUTE) ListProperty(org.gradle.api.provider.ListProperty) Closure(groovy.lang.Closure) ExternalModuleDependencyVariantSpec(org.gradle.api.artifacts.dsl.ExternalModuleDependencyVariantSpec) ModuleDependency(org.gradle.api.artifacts.ModuleDependency) ConfigureUtil(org.gradle.util.internal.ConfigureUtil) AttributesSchema(org.gradle.api.attributes.AttributesSchema) Provider(org.gradle.api.provider.Provider) ConfigurationContainer(org.gradle.api.artifacts.ConfigurationContainer) Map(java.util.Map) DeprecationLogger(org.gradle.internal.deprecation.DeprecationLogger) Transformer(org.gradle.api.Transformer) ImmutableCapability(org.gradle.internal.component.external.model.ImmutableCapability) TEST_FIXTURES_CAPABILITY_APPENDIX(org.gradle.internal.component.external.model.TestFixturesSupport.TEST_FIXTURES_CAPABILITY_APPENDIX) MethodMixIn(org.gradle.internal.metaobject.MethodMixIn) MinimalExternalModuleDependency(org.gradle.api.artifacts.MinimalExternalModuleDependency) MethodAccess(org.gradle.internal.metaobject.MethodAccess) ProjectTestFixtures(org.gradle.internal.component.external.model.ProjectTestFixtures) ModuleDependencyCapabilitiesHandler(org.gradle.api.artifacts.ModuleDependencyCapabilitiesHandler) Collectors(java.util.stream.Collectors) TransformParameters(org.gradle.api.artifacts.transform.TransformParameters) List(java.util.List) Factory(org.gradle.internal.Factory) TransformAction(org.gradle.api.artifacts.transform.TransformAction) Category(org.gradle.api.attributes.Category) DefaultValueSourceProviderFactory(org.gradle.api.internal.provider.DefaultValueSourceProviderFactory) Inject(javax.inject.Inject) Configuration(org.gradle.api.artifacts.Configuration) DependencyHandler(org.gradle.api.artifacts.dsl.DependencyHandler) AttributeContainer(org.gradle.api.attributes.AttributeContainer) ArtifactResolutionQuery(org.gradle.api.artifacts.query.ArtifactResolutionQuery) HasConfigurableAttributes(org.gradle.api.attributes.HasConfigurableAttributes) ArtifactResolutionQueryFactory(org.gradle.api.internal.artifacts.query.ArtifactResolutionQueryFactory) Nullable(javax.annotation.Nullable) Action(org.gradle.api.Action) ProjectDependency(org.gradle.api.artifacts.ProjectDependency) VariantTransformRegistry(org.gradle.api.internal.artifacts.VariantTransformRegistry) DependencyConstraintHandler(org.gradle.api.artifacts.dsl.DependencyConstraintHandler) DefaultMinimalDependencyVariant(org.gradle.api.internal.artifacts.dependencies.DefaultMinimalDependencyVariant) Cast(org.gradle.internal.Cast) DependencyBundleValueSource(org.gradle.api.internal.catalog.DependencyBundleValueSource) ComponentMetadataHandler(org.gradle.api.artifacts.dsl.ComponentMetadataHandler) ProviderConvertible(org.gradle.api.provider.ProviderConvertible) ObjectFactory(org.gradle.api.model.ObjectFactory) ValueSource(org.gradle.api.provider.ValueSource) ArtifactTypeContainer(org.gradle.api.artifacts.type.ArtifactTypeContainer) InvalidUserDataException(org.gradle.api.InvalidUserDataException) Dependency(org.gradle.api.artifacts.Dependency) TransformSpec(org.gradle.api.artifacts.transform.TransformSpec) Actions(org.gradle.internal.Actions) ExternalModuleDependency(org.gradle.api.artifacts.ExternalModuleDependency) ModuleDependency(org.gradle.api.artifacts.ModuleDependency) MinimalExternalModuleDependency(org.gradle.api.artifacts.MinimalExternalModuleDependency) ExternalModuleDependency(org.gradle.api.artifacts.ExternalModuleDependency) ModuleDependency(org.gradle.api.artifacts.ModuleDependency) MinimalExternalModuleDependency(org.gradle.api.artifacts.MinimalExternalModuleDependency) ProjectDependency(org.gradle.api.artifacts.ProjectDependency) Dependency(org.gradle.api.artifacts.Dependency) ProjectDependency(org.gradle.api.artifacts.ProjectDependency) ImmutableCapability(org.gradle.internal.component.external.model.ImmutableCapability) ProjectTestFixtures(org.gradle.internal.component.external.model.ProjectTestFixtures)

Example 7 with ProjectDependency

use of org.gradle.api.artifacts.ProjectDependency in project gradle by gradle.

the class UnresolvableConfigurationResult method getChildren.

@Override
public Set<? extends RenderableDependency> getChildren() {
    final DependencySet dependencies = configuration.getDependencies();
    if (dependencies.isEmpty()) {
        return Collections.emptySet();
    }
    Set<RenderableDependency> children = Sets.newLinkedHashSet();
    for (final Dependency dependency : dependencies) {
        children.add(new AbstractRenderableDependency() {

            @Override
            public Object getId() {
                return dependency;
            }

            @Override
            public String getName() {
                String label;
                if (dependency instanceof ProjectDependency) {
                    label = "project " + dependency.getName();
                } else {
                    label = Joiner.on(":").join(Stream.of(dependency.getGroup(), dependency.getName(), dependency.getVersion()).filter(Objects::nonNull).collect(Collectors.toList()));
                }
                return label;
            }
        });
    }
    return children;
}
Also used : Objects(java.util.Objects) DependencySet(org.gradle.api.artifacts.DependencySet) ProjectDependency(org.gradle.api.artifacts.ProjectDependency) Dependency(org.gradle.api.artifacts.Dependency) ProjectDependency(org.gradle.api.artifacts.ProjectDependency)

Example 8 with ProjectDependency

use of org.gradle.api.artifacts.ProjectDependency in project gradle by gradle.

the class DefaultIvyPublication method populateDependencies.

private void populateDependencies(Set<? extends UsageContext> usageContexts, PublicationWarningsCollector publicationWarningsCollector) {
    for (UsageContext usageContext : usageContexts) {
        publicationWarningsCollector.newContext(usageContext.getName());
        for (ModuleDependency dependency : usageContext.getDependencies()) {
            String confMapping = confMappingFor(usageContext, dependency);
            if (!dependency.getAttributes().isEmpty()) {
                publicationWarningsCollector.addUnsupported(String.format("%s:%s:%s declared with Gradle attributes", dependency.getGroup(), dependency.getName(), dependency.getVersion()));
            }
            if (dependency instanceof ProjectDependency) {
                addProjectDependency((ProjectDependency) dependency, confMapping);
            } else {
                ExternalDependency externalDependency = (ExternalDependency) dependency;
                if (platformSupport.isTargetingPlatform(dependency)) {
                    publicationWarningsCollector.addUnsupported(String.format("%s:%s:%s declared as platform", dependency.getGroup(), dependency.getName(), dependency.getVersion()));
                }
                if (!versionMappingInUse && externalDependency.getVersion() == null) {
                    publicationWarningsCollector.addUnsupported(String.format("%s:%s declared without version", externalDependency.getGroup(), externalDependency.getName()));
                }
                addExternalDependency(externalDependency, confMapping, ((AttributeContainerInternal) usageContext.getAttributes()).asImmutable());
            }
        }
        if (!usageContext.getDependencyConstraints().isEmpty()) {
            for (DependencyConstraint constraint : usageContext.getDependencyConstraints()) {
                publicationWarningsCollector.addUnsupported(String.format("%s:%s:%s declared as a dependency constraint", constraint.getGroup(), constraint.getName(), constraint.getVersion()));
            }
        }
        if (!usageContext.getCapabilities().isEmpty()) {
            for (Capability capability : usageContext.getCapabilities()) {
                publicationWarningsCollector.addVariantUnsupported(String.format("Declares capability %s:%s:%s which cannot be mapped to Ivy", capability.getGroup(), capability.getName(), capability.getVersion()));
            }
        }
    }
}
Also used : ExternalDependency(org.gradle.api.artifacts.ExternalDependency) ModuleDependency(org.gradle.api.artifacts.ModuleDependency) Capability(org.gradle.api.capabilities.Capability) UsageContext(org.gradle.api.internal.component.UsageContext) DependencyConstraint(org.gradle.api.artifacts.DependencyConstraint) DefaultIvyProjectDependency(org.gradle.api.publish.ivy.internal.dependency.DefaultIvyProjectDependency) ProjectDependency(org.gradle.api.artifacts.ProjectDependency)

Example 9 with ProjectDependency

use of org.gradle.api.artifacts.ProjectDependency in project gradle by gradle.

the class DefaultIvyPublication method from.

public void from(SoftwareComponent component) {
    if (this.component != null) {
        throw new InvalidUserDataException(String.format("Ivy publication '%s' cannot include multiple components", name));
    }
    this.component = (SoftwareComponentInternal) component;
    configurations.maybeCreate("default");
    Set<PublishArtifact> seenArtifacts = Sets.newHashSet();
    Set<ModuleDependency> seenDependencies = Sets.newHashSet();
    for (UsageContext usageContext : getSortedUsageContexts()) {
        Usage usage = usageContext.getUsage();
        String conf = mapUsage(usage);
        configurations.maybeCreate(conf);
        configurations.getByName("default").extend(conf);
        for (PublishArtifact publishArtifact : usageContext.getArtifacts()) {
            if (!seenArtifacts.contains(publishArtifact)) {
                seenArtifacts.add(publishArtifact);
                artifact(publishArtifact).setConf(conf);
            }
        }
        for (ModuleDependency dependency : usageContext.getDependencies()) {
            if (seenDependencies.add(dependency)) {
                // TODO: When we support multiple components or configurable dependencies, we'll need to merge the confs of multiple dependencies with same id.
                String confMapping = String.format("%s->%s", conf, dependency.getTargetConfiguration() == null ? Dependency.DEFAULT_CONFIGURATION : dependency.getTargetConfiguration());
                if (dependency instanceof ProjectDependency) {
                    addProjectDependency((ProjectDependency) dependency, confMapping);
                } else {
                    addExternalDependency((ExternalDependency) dependency, confMapping);
                }
            }
        }
    }
}
Also used : Usage(org.gradle.api.attributes.Usage) ModuleDependency(org.gradle.api.artifacts.ModuleDependency) UsageContext(org.gradle.api.internal.component.UsageContext) InvalidUserDataException(org.gradle.api.InvalidUserDataException) PublishArtifact(org.gradle.api.artifacts.PublishArtifact) ProjectDependency(org.gradle.api.artifacts.ProjectDependency)

Example 10 with ProjectDependency

use of org.gradle.api.artifacts.ProjectDependency in project gradle-eta by typelead.

the class EtaBasePlugin method populateEtaConfiguration.

private void populateEtaConfiguration(final Configuration configuration) {
    final DefaultEtaConfiguration etaConfiguration = ExtensionHelper.createExtension(configuration, ETA_CONFIGURATION_EXTENSION_NAME, DefaultEtaConfiguration.class, configuration, mavenRepository);
    DomainObjectCollection<EtaDependency> dependencies = etaConfiguration.getDependencies();
    configuration.getDependencies().all(dependency -> {
        if (dependency instanceof ProjectDependency) {
            final ProjectDependency projectDependency = (ProjectDependency) dependency;
            dependencies.add(new DefaultEtaProjectDependency(projectDependency.getDependencyProject(), projectDependency.getTargetConfiguration()));
        } else if (dependency instanceof EtaDependency) {
            dependencies.add((EtaDependency) dependency);
        }
    });
}
Also used : DefaultEtaProjectDependency(com.typelead.gradle.eta.internal.DefaultEtaProjectDependency) EtaDependency(com.typelead.gradle.eta.api.EtaDependency) DefaultEtaConfiguration(com.typelead.gradle.eta.internal.DefaultEtaConfiguration) ProjectDependency(org.gradle.api.artifacts.ProjectDependency) DefaultEtaProjectDependency(com.typelead.gradle.eta.internal.DefaultEtaProjectDependency)

Aggregations

ProjectDependency (org.gradle.api.artifacts.ProjectDependency)18 Dependency (org.gradle.api.artifacts.Dependency)7 ModuleDependency (org.gradle.api.artifacts.ModuleDependency)6 EtaDependency (com.typelead.gradle.eta.api.EtaDependency)4 Configuration (org.gradle.api.artifacts.Configuration)4 DependencyConstraint (org.gradle.api.artifacts.DependencyConstraint)4 ModuleVersionIdentifier (org.gradle.api.artifacts.ModuleVersionIdentifier)4 EtaProjectDependency (com.typelead.gradle.eta.api.EtaProjectDependency)3 DefaultEtaConfiguration (com.typelead.gradle.eta.internal.DefaultEtaConfiguration)3 ArrayList (java.util.ArrayList)3 List (java.util.List)3 InvalidUserDataException (org.gradle.api.InvalidUserDataException)3 Project (org.gradle.api.Project)3 PublishArtifact (org.gradle.api.artifacts.PublishArtifact)3 UsageContext (org.gradle.api.internal.component.UsageContext)3 DefaultMavenDependency (org.gradle.api.publish.maven.internal.dependencies.DefaultMavenDependency)3 File (java.io.File)2 Collectors (java.util.stream.Collectors)2 Action (org.gradle.api.Action)2 ConfigurationContainer (org.gradle.api.artifacts.ConfigurationContainer)2