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

标签 java gradle package

我在从外部 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 代码块来解决这个问题。

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

最佳答案

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

What you can do on the other hand is to put your buildscript block into the build.gradle file of the root project and then all other build files from subprojects will inherit this block.

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

关于java - 如何导入外部 gradle 脚本文件并在 Gradle 中正确导入插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49838462/

相关文章:

Java Codelab While 语句

r - 我无法在 R 中下载 reshape2 包

android - Gradle 构建失败,内存不足 : Java heap space error

android - 如何检查我的项目中使用了哪个 Gradle Android 插件版本?

c# - C#有没有类似java中的package的东西

package - Tcl:扩展加载和线程的交互

java - 全屏独占模式

java - Spring 框架 - Kotlin - 将实体保存到 XML

java - 如何在 Mac 上创建一个允许用户创建目录的 JFileChooser?

gradle - 执行 greenDao gradle 插件时 org.eclipse.jdt 类的 NoClassDefFoundError(s)