gpt4 book ai didi

Gradle:从另一个插件添加插件依赖项

转载 作者:行者123 更新时间:2023-12-02 01:36:01 25 4
gpt4 key购买 nike

我正在创建 gradle 自定义插件,我的任务之一需要确保另一个插件应用于同一项目。因为它将在其之上运行。我希望我的插件的用户避免设置对另一个插件的显式依赖 - 我想在我的插件中执行此操作。

所以,我想应用这个插件( https://plugins.gradle.org/plugin/org.hidetake.ssh )。这是我的依赖。

我创建插件的方式 - 我只是在 groovy 上创建一个类代码,将其放入 buildSrc\src\main\groovy 并在项目中应用 groovy 插件。所以我的自定义插件在构建阶段对 gradle 是可见的。它有效,我几乎没有其他插件以这种方式为同一个项目完成,所以现在还好。

我已经浏览了其他主题并通过谷歌搜索了同样的问题,但我无法让这个工作适合我。这是我应用代码的方式:

void apply(Project project) {

project.buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "org.hidetake:gradle-ssh-plugin:1.1.3"
}
}

project.apply plugin: "org.hidetake.ssh"
...

我收到的错误消息:未找到 ID 为“org.hidetake.ssh”的插件。我尝试通过 gradle api 也使用project.repositories.mavenCentral() 和project.dependency.add 和project.apply(plugin:'org.hidetake.ssh') 来完成此操作,然后 - 也不起作用 - 相同的错误消息。尝试在 project.dependency.add("myConfig",[group:'org.hidetake', name:'gradle-ssh-plugin', version:'1.1.3']) 中使用长符号 - 没有结果。

如果有人可以指导正确的语法\方式使其发挥作用,我们将不胜感激。

最佳答案

好吧,我终于明白了。要解决该问题,您需要执行以下操作:

  1. 将 build.gradle 放入 buildSrc 目录中。
  2. 将插件的依赖项声明为运行时。像这样:

    repositories {
    jcenter()
    }
    dependencies {
    runtime 'org.hidetake:gradle-ssh-plugin:2.6.0'
    }
  3. 在您自己的插件定义中显式应用插件。像这样:

    void apply(Project project) {
    project.pluginManager.apply('org.hidetake.ssh')
    ...

关于Gradle:从另一个插件添加插件依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39493502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com