maven - 在自定义插件中使用 Gradle 依赖项

标签 maven gradle groovy

我正在尝试编写一个自定义 Gradle 插件,该插件使用他们的 API 调用 flyway 迁移:

https://flywaydb.org/documentation/api/

这是一个最小的例子:

buildscript {
    repositories.jcenter()
    dependencies.classpath "org.flywaydb:flyway-core:4.1.2"
}

apply plugin: DatabaseHandlerPlugin

class DatabaseHandlerPlugin implements Plugin<Project> {
    void apply(Project project) {
        project.task("databaseHandler").doLast {
            org.flywaydb.Flyway f = new Flyway(); // <= How can I use the above declared dependency here and in my projects?
        }
    }
}

但是我的 gradle 提示它无法加载 Flyway 类。

最佳答案

Flyway 类位于 org.flywaydb.core包裹。您错过了 core少量。我的完整代码有效:

import org.flywaydb.core.Flyway; // << can import here

buildscript {
    repositories { mavenCentral() }

    dependencies {
        classpath "org.flywaydb:flyway-core:4.1.2"
    }

}
apply plugin: DatabaseHandlerPlugin

class DatabaseHandlerPlugin implements Plugin<Project> {
    void apply(Project project) {
        project.task('databaseHandler') {
            doLast {
                Flyway f = new Flyway()
                println "Flyway: $f"
            }
        }
    }
}

输出:
> gradle databaseHandler    
:databaseHandler
Flyway: org.flywaydb.core.Flyway@7b27e8f4

关于maven - 在自定义插件中使用 Gradle 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43220291/

相关文章:

java - Apache Tomcat 为 Web 应用程序返回 404 错误

java - Maven 故障安全插件。复制资源

android-studio - 在android上运行gradle项目的问题

android - gradlew assembleRelease 失败,出现 java.lang.ClassNotFoundException : com. sun.tools.javac.util.Context

elasticsearch - 在Elasticsearch中执行Groovy脚本时出错

java - Apache Storm : SLF4J: Class path contains multiple SLF4J bindings

android - 如何解决错误 "Unable to find valid certification path to requested target while executing command react-native run-android"

android - 编写gradle任务以添加新的Android产品版本的规范方法

Groovy 脚本的 Eclipse RCP 独立导出问题

java - 对 Java、Groovy、Jython 和 Python 进行基准测试