gradle - Gradle以编程方式获取依赖项而无需配置

标签 gradle

是否可以在不使用自定义配置的情况下获得Gradle中的Maven依赖关系?例如在自定义插件中只是获取扩展提供的依赖关系?就像是

class DependencyPlugin implements Plugin<Project> {
    void apply(Project project) {
        project.extensions.create("deps", DepsExtension)
        project.task('useDependency') {
            doLast {
        //use Gradle api to resolve dependency without custom configuration
                project.resolve(project.deps.dependency)
            }
        }
    }
}

class DepsExtension {
    def dependency = 'custom:maven:1.0'
}

最佳答案

像这样:

Configuration config = project.configurations.create('myPrivateConfig')
Dependency dep = project.dependencies.create('custom:maven:1.0') {
    exclude group: 'foo', module: 'bar'
}
config.dependencies.add(dep)
Set<File> files = config.files

我在gradle插件here中做了类似的事情

引用文献
  • https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html
  • https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/DependencySet.html
  • https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/dsl/DependencyHandler.html
  • 关于gradle - Gradle以编程方式获取依赖项而无需配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40753649/

    相关文章:

    spring - 类路径包含多个SLF4J绑定(bind)spring boot排除问题

    java - Gradle 构建不下载依赖项

    android - Gradle 3.3 版本构建失败

    selenium - 如何与 gradle 并行运行 Serenity Web 测试?

    Gradle 在执行单元测试时构建每个子项目

    java - `gradle jar` 好像没有给jar文件添加依赖

    android - 错误 :(1, 0) 未找到 ID 为 'com.android.application' 的插件

    android - 可以设置debug/AndroidManifest.xml

    gradle - 是否可以从doLast内部执行任务?

    android - 类已添加到输出。请删除重复的副本