首页 文章

如何在Gradle中正确导入插件导入外部gradle脚本文件?

提问于
浏览
0

从外部Gradle脚本文件应用时遇到插件导入错误 . 例如:在文件 gradle/lambda.gradle 中:

apply plugin: 'base'
apply plugin: 'jp.classmethod.aws.lambda'

import com.amazonaws.services.lambda.model.InvocationType;

import jp.classmethod.aws.gradle.lambda.AWSLambdaDeleteFunctionTask;
import jp.classmethod.aws.gradle.lambda.AWSLambdaInvokeTask;
import jp.classmethod.aws.gradle.lambda.AWSLambdaMigrateFunctionTask;
import jp.classmethod.aws.gradle.lambda.AWSLambdaPublishVersionTask;
import jp.classmethod.aws.gradle.lambda.AWSLambdaCreateAliasTask;
import jp.classmethod.aws.gradle.lambda.AWSLambdaUpdateAliasTask;

import jp.classmethod.aws.gradle.lambda.VpcConfigWrapper

buildscript {
    repositories {
        maven {
            url "https://plugins.gradle.org/m2/"
        }

    }
    dependencies {
        classpath "jp.classmethod.aws:gradle-aws-plugin:0.38"
    }
}

build.gradle 文件中,我通过此方法应用外部脚本:

apply from: 'gradle/lambda.gradle'

但它会产生关于插件导入的错误:

Plugin with id 'jp.classmethod.aws.lambda' not found.

可以通过在 build.gradle 文件中包含相同的buildscript代码块来解决它 .

这个问题的根本原因是什么?实现这一目标的推荐方法是什么?

1 回答

  • 0

    基于my answer here,您应该这样做:

    另一方面,您可以将您的buildscript块放入根项目的build.gradle文件中,然后子项目中的所有其他构建文件将继承此块 .

    编辑:由于导入它将无法工作 . 在 gradle/lambda.gradle 中需要 classpath "jp.classmethod.aws:gradle-aws-plugin:0.38" 来解析 import ,在 build.gradle 中也需要_18693332_,因为插件 jp.classmethod.aws.lambda 从此处应用(通过 apply from

相关问题