Search in sources :

Example 11 with DependencyHandler

use of org.gradle.api.artifacts.dsl.DependencyHandler in project gradle by gradle.

the class GroovyBuildSrcProjectConfigurationAction method execute.

@Override
public void execute(ProjectInternal project) {
    project.getPluginManager().apply(JavaLibraryPlugin.class);
    project.getPluginManager().apply(GroovyPlugin.class);
    DependencyHandler dependencies = project.getDependencies();
    dependencies.add(JavaPlugin.API_CONFIGURATION_NAME, dependencies.gradleApi());
    dependencies.add(JavaPlugin.API_CONFIGURATION_NAME, dependencies.localGroovy());
}
Also used : DependencyHandler(org.gradle.api.artifacts.dsl.DependencyHandler)

Example 12 with DependencyHandler

use of org.gradle.api.artifacts.dsl.DependencyHandler in project gradle by gradle.

the class NativeBasePlugin method apply.

@Override
public void apply(final Project project) {
    project.getPluginManager().apply(LifecycleBasePlugin.class);
    addTargetMachineFactoryAsExtension(project.getExtensions(), targetMachineFactory);
    final TaskContainer tasks = project.getTasks();
    final DirectoryProperty buildDirectory = project.getLayout().getBuildDirectory();
    final SoftwareComponentContainer components = project.getComponents();
    addLifecycleTasks(project, tasks, components);
    // Add tasks to build various kinds of components
    addTasksForComponentWithExecutable(tasks, buildDirectory, components);
    addTasksForComponentWithSharedLibrary(tasks, buildDirectory, components);
    addTasksForComponentWithStaticLibrary(tasks, buildDirectory, components);
    // Add incoming artifact transforms
    final DependencyHandler dependencyHandler = project.getDependencies();
    final ObjectFactory objects = project.getObjects();
    addHeaderZipTransform(dependencyHandler, objects);
    // Add outgoing configurations and publications
    final ConfigurationContainer configurations = project.getConfigurations();
    project.getDependencies().getAttributesSchema().attribute(LINKAGE_ATTRIBUTE).getDisambiguationRules().add(LinkageSelectionRule.class);
    addOutgoingConfigurationForLinkUsage(components, configurations);
    addOutgoingConfigurationForRuntimeUsage(components, configurations);
    addPublicationsFromVariants(project, components);
}
Also used : DependencyHandler(org.gradle.api.artifacts.dsl.DependencyHandler) TaskContainer(org.gradle.api.tasks.TaskContainer) DirectoryProperty(org.gradle.api.file.DirectoryProperty) ObjectFactory(org.gradle.api.model.ObjectFactory) ConfigurationContainer(org.gradle.api.artifacts.ConfigurationContainer) SoftwareComponentContainer(org.gradle.api.component.SoftwareComponentContainer)

Example 13 with DependencyHandler

use of org.gradle.api.artifacts.dsl.DependencyHandler in project gradle by gradle.

the class DefaultScriptHandler method defineConfiguration.

private void defineConfiguration() {
    // Defer creation and resolution of configuration until required. Short-circuit when script does not require classpath
    if (configContainer == null) {
        configContainer = dependencyResolutionServices.getConfigurationContainer();
    }
    if (dependencyHandler == null) {
        dependencyHandler = dependencyResolutionServices.getDependencyHandler();
    }
    if (classpathConfiguration == null) {
        classpathConfiguration = configContainer.create(CLASSPATH_CONFIGURATION);
        // should ideally reuse the `JvmEcosystemUtilities` but this code is too low level
        // and this service is therefore not available!
        AttributeContainer attributes = classpathConfiguration.getAttributes();
        attributes.attribute(Usage.USAGE_ATTRIBUTE, instantiator.named(Usage.class, Usage.JAVA_RUNTIME));
        attributes.attribute(Category.CATEGORY_ATTRIBUTE, instantiator.named(Category.class, Category.LIBRARY));
        attributes.attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, instantiator.named(LibraryElements.class, LibraryElements.JAR));
        attributes.attribute(Bundling.BUNDLING_ATTRIBUTE, instantiator.named(Bundling.class, Bundling.EXTERNAL));
        attributes.attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, Integer.parseInt(JavaVersion.current().getMajorVersion()));
        attributes.attribute(GradlePluginApiVersion.GRADLE_PLUGIN_API_VERSION_ATTRIBUTE, instantiator.named(GradlePluginApiVersion.class, GradleVersion.current().getVersion()));
        classpathConfiguration.getDependencyConstraints().add(dependencyHandler.getConstraints().create(Log4jBannedVersion.LOG4J2_CORE_COORDINATES, constraint -> constraint.version(version -> {
            version.require(Log4jBannedVersion.LOG4J2_CORE_REQUIRED_VERSION);
            version.reject(Log4jBannedVersion.LOG4J2_CORE_VULNERABLE_VERSION_RANGE);
        })));
    }
}
Also used : Bundling(org.gradle.api.attributes.Bundling) NamedObjectInstantiator(org.gradle.api.internal.model.NamedObjectInstantiator) RepositoryHandler(org.gradle.api.artifacts.dsl.RepositoryHandler) JavaEcosystemSupport(org.gradle.api.internal.artifacts.JavaEcosystemSupport) Category(org.gradle.api.attributes.Category) BeanDynamicObject(org.gradle.internal.metaobject.BeanDynamicObject) Closure(groovy.lang.Closure) DynamicObjectAware(org.gradle.api.internal.DynamicObjectAware) Logger(org.gradle.api.logging.Logger) LibraryElements(org.gradle.api.attributes.LibraryElements) Bundling(org.gradle.api.attributes.Bundling) ConfigureUtil(org.gradle.util.internal.ConfigureUtil) Configuration(org.gradle.api.artifacts.Configuration) TargetJvmVersion(org.gradle.api.attributes.java.TargetJvmVersion) DependencyHandler(org.gradle.api.artifacts.dsl.DependencyHandler) AttributeContainer(org.gradle.api.attributes.AttributeContainer) ConfigurationContainer(org.gradle.api.artifacts.ConfigurationContainer) Log4jBannedVersion(org.gradle.internal.logging.util.Log4jBannedVersion) URI(java.net.URI) GradleVersion(org.gradle.util.GradleVersion) DependencyLockingHandler(org.gradle.api.artifacts.dsl.DependencyLockingHandler) Usage(org.gradle.api.attributes.Usage) GradlePluginApiVersion(org.gradle.api.attributes.plugin.GradlePluginApiVersion) JavaVersion(org.gradle.api.JavaVersion) File(java.io.File) DependencyResolutionServices(org.gradle.api.internal.artifacts.DependencyResolutionServices) ScriptSource(org.gradle.groovy.scripts.ScriptSource) ResourceLocation(org.gradle.internal.resource.ResourceLocation) Logging(org.gradle.api.logging.Logging) DynamicObject(org.gradle.internal.metaobject.DynamicObject) ClassPath(org.gradle.internal.classpath.ClassPath) ScriptHandler(org.gradle.api.initialization.dsl.ScriptHandler) ClasspathUtil(org.gradle.internal.classloader.ClasspathUtil) Usage(org.gradle.api.attributes.Usage) Category(org.gradle.api.attributes.Category) GradlePluginApiVersion(org.gradle.api.attributes.plugin.GradlePluginApiVersion) AttributeContainer(org.gradle.api.attributes.AttributeContainer) LibraryElements(org.gradle.api.attributes.LibraryElements)

Example 14 with DependencyHandler

use of org.gradle.api.artifacts.dsl.DependencyHandler in project curiostack by curioswitch.

the class CuriostackRootPlugin method addStandardJavaTestDependencies.

private static void addStandardJavaTestDependencies(Project project) {
    DependencyHandler dependencies = project.getDependencies();
    dependencies.add(JavaPlugin.COMPILE_ONLY_CONFIGURATION_NAME, "com.google.code.findbugs:jsr305");
    dependencies.add(JavaPlugin.TEST_IMPLEMENTATION_CONFIGURATION_NAME, "org.curioswitch.curiostack:curio-testing-framework");
    dependencies.add(JavaPlugin.TEST_IMPLEMENTATION_CONFIGURATION_NAME, "org.assertj:assertj-core");
    dependencies.add(JavaPlugin.TEST_IMPLEMENTATION_CONFIGURATION_NAME, "org.awaitility:awaitility");
    dependencies.add(JavaPlugin.TEST_IMPLEMENTATION_CONFIGURATION_NAME, "junit:junit");
    dependencies.add(JavaPlugin.TEST_IMPLEMENTATION_CONFIGURATION_NAME, "org.mockito:mockito-core");
    dependencies.add(JavaPlugin.TEST_IMPLEMENTATION_CONFIGURATION_NAME, "org.mockito:mockito-junit-jupiter");
    dependencies.add(JavaPlugin.TEST_IMPLEMENTATION_CONFIGURATION_NAME, "info.solidsoft.mockito:mockito-java8");
    dependencies.add(JavaPlugin.TEST_IMPLEMENTATION_CONFIGURATION_NAME, "org.junit.jupiter:junit-jupiter-api");
    dependencies.add(JavaPlugin.TEST_RUNTIME_ONLY_CONFIGURATION_NAME, "org.junit.jupiter:junit-jupiter-engine");
    dependencies.add(JavaPlugin.TEST_RUNTIME_ONLY_CONFIGURATION_NAME, "org.junit.vintage:junit-vintage-engine");
}
Also used : DependencyHandler(org.gradle.api.artifacts.dsl.DependencyHandler)

Example 15 with DependencyHandler

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

the class EtaInstallDependencies method installDependencies.

@TaskAction
public void installDependencies() {
    final EtaOptions etaOptions = getOptions();
    etaOptions.validate(etaInfo.get());
    final File workingDir = getDestinationDir();
    copyFreezeConfigIfChanged(workingDir);
    /* Calculate all the modules */
    final List<String> modules = getModules();
    /* Determine if it's an executable */
    String exec = executable.getOrNull();
    if (exec != null && exec.length() <= 0) {
        exec = null;
    }
    final String executableSpec = exec;
    /* Generate the .cabal & cabal.project files. */
    final WriteResult[] writeResults = new WriteResult[2];
    final String targetConfigurationName = getTargetConfiguration();
    Set<File> packageDBs = ConfigurationUtils.getEtaConfiguration(ConfigurationUtils.getConfiguration(project, targetConfigurationName)).getAllArtifacts(project).stream().map(Provider::get).collect(Collectors.toSet());
    packageDBs.addAll(project.files(extraPackageDBs.values()).getFiles());
    DependencyUtils.foldEtaDependencies(project, dependencies.get(), (directDeps, projectDeps, gitStringDeps, gitDeps) -> {
        /* Include the project dependencies and git dependencies in the Etlas
                   dependency list. */
        directDeps.addAll(projectDeps);
        directDeps.addAll(gitStringDeps);
        directDeps.addAll(extraPackageDBs.keySet());
        writeResults[0] = CabalHelper.generateCabalFile(getPackageName(), getPackageVersion(), executableSpec, getSourceDirs().getFiles().stream().map(File::getAbsolutePath).collect(Collectors.toList()), modules, etaOptions, directDeps, workingDir);
        writeResults[1] = CabalHelper.generateCabalProjectFile(gitDeps, packageDBs, workingDir);
    });
    /* Delete existing *.cabal files to avoid errors when changing the project
           name. */
    final File oldCabalFile = writeResults[0].getFile();
    project.delete(project.fileTree(workingDir, fileTree -> {
        fileTree.include("*.cabal");
        fileTree.exclude(fileTreeElement -> {
            try {
                return fileTreeElement.getFile().getCanonicalPath().equals(oldCabalFile.getCanonicalPath());
            } catch (IOException e) {
                return true;
            }
        });
    }));
    /* Fork an etlas process to install the dependencies.  */
    final EtlasCommand etlas = new EtlasCommand(project);
    etlas.getWorkingDirectory().set(workingDir);
    boolean isUpToDate = etlas.deps(EtlasCommand.libTarget(getPackageName()), dependencyGraph -> {
        /* Inject the dependencies into the respective configurations. */
        DependencyHandler dependencies = project.getDependencies();
        final EtaConfiguration targetEtaConfiguration = ConfigurationUtils.getEtaConfiguration(project, getTargetConfiguration());
        targetEtaConfiguration.resolve(project, dependencies, dependencyGraph);
    });
    setDidWork(!isUpToDate);
}
Also used : Buildable(org.gradle.api.Buildable) SourceTask(org.gradle.api.tasks.SourceTask) EtaOptions(com.typelead.gradle.eta.api.EtaOptions) EtlasCommand(com.typelead.gradle.utils.EtlasCommand) Callable(java.util.concurrent.Callable) FileCollection(org.gradle.api.file.FileCollection) InputFiles(org.gradle.api.tasks.InputFiles) CabalHelper(com.typelead.gradle.utils.CabalHelper) OutputDirectory(org.gradle.api.tasks.OutputDirectory) EtaConfiguration(com.typelead.gradle.eta.api.EtaConfiguration) ArrayList(java.util.ArrayList) LinkedHashMap(java.util.LinkedHashMap) TaskAction(org.gradle.api.tasks.TaskAction) Configuration(org.gradle.api.artifacts.Configuration) Provider(org.gradle.api.provider.Provider) EtaDependency(com.typelead.gradle.eta.api.EtaDependency) ConfigurationUtils(com.typelead.gradle.eta.internal.ConfigurationUtils) DependencyHandler(org.gradle.api.artifacts.dsl.DependencyHandler) DirectoryProperty(org.gradle.api.file.DirectoryProperty) Map(java.util.Map) EtaInfo(com.typelead.gradle.utils.EtaInfo) DefaultTask(org.gradle.api.DefaultTask) Directory(org.gradle.api.file.Directory) Internal(org.gradle.api.tasks.Internal) WriteResult(com.typelead.gradle.utils.CabalHelper.WriteResult) Project(org.gradle.api.Project) EtaProjectDependency(com.typelead.gradle.eta.api.EtaProjectDependency) SourceDirectorySet(org.gradle.api.file.SourceDirectorySet) Set(java.util.Set) IOException(java.io.IOException) EtaExtension(com.typelead.gradle.eta.api.EtaExtension) Collectors(java.util.stream.Collectors) File(java.io.File) List(java.util.List) OutputFile(org.gradle.api.tasks.OutputFile) PackageInfo(com.typelead.gradle.utils.PackageInfo) GradleException(org.gradle.api.GradleException) RegularFile(org.gradle.api.file.RegularFile) DependencyUtils(com.typelead.gradle.eta.internal.DependencyUtils) Property(org.gradle.api.provider.Property) Nested(org.gradle.api.tasks.Nested) Input(org.gradle.api.tasks.Input) IOException(java.io.IOException) EtlasCommand(com.typelead.gradle.utils.EtlasCommand) DependencyHandler(org.gradle.api.artifacts.dsl.DependencyHandler) EtaOptions(com.typelead.gradle.eta.api.EtaOptions) WriteResult(com.typelead.gradle.utils.CabalHelper.WriteResult) EtaConfiguration(com.typelead.gradle.eta.api.EtaConfiguration) File(java.io.File) OutputFile(org.gradle.api.tasks.OutputFile) RegularFile(org.gradle.api.file.RegularFile) TaskAction(org.gradle.api.tasks.TaskAction)

Aggregations

DependencyHandler (org.gradle.api.artifacts.dsl.DependencyHandler)18 Configuration (org.gradle.api.artifacts.Configuration)12 Project (org.gradle.api.Project)7 File (java.io.File)6 EtaConfiguration (com.typelead.gradle.eta.api.EtaConfiguration)3 ConfigurationContainer (org.gradle.api.artifacts.ConfigurationContainer)3 DependencySet (org.gradle.api.artifacts.DependencySet)3 Usage (org.gradle.api.attributes.Usage)3 FileCollection (org.gradle.api.file.FileCollection)3 AndroidArtifacts (com.android.build.gradle.internal.publishing.AndroidArtifacts)2 AtlasAndroidArtifacts (com.android.build.gradle.internal.publishing.AtlasAndroidArtifacts)2 EtlasCommand (com.typelead.gradle.utils.EtlasCommand)2 IOException (java.io.IOException)2 InputStream (java.io.InputStream)2 Properties (java.util.Properties)2 Callable (java.util.concurrent.Callable)2 Action (org.gradle.api.Action)2 ComponentIdentifier (org.gradle.api.artifacts.component.ComponentIdentifier)2 ProjectComponentIdentifier (org.gradle.api.artifacts.component.ProjectComponentIdentifier)2 AttributeContainer (org.gradle.api.attributes.AttributeContainer)2