【问题标题】:Apply gradle custom jar plugin应用 gradle 自定义 jar 插件
【发布时间】:2013-05-09 18:23:54
【问题描述】:

我为 gradle 创建了一个简单的基于 groovy 的插件。

在我的 gradle.build 文件中,我有以下内容:

apply plugin: 'groovy'

dependencies {
    compile gradleApi()
    compile localGroovy()
}

一切都很好,我得到了一个构建目录,并在 lib 文件夹中生成了一个 .jar,我猜这是独立插件。

现在我想知道如何将这个新插件注册到我的 gradle 安装中,所以我可以这样做 应用插件:'myPlugin' 我做了以下事情:

  • 将插件放到安装中的插件文件夹中
  • 创建了 myplugin.properties 文件并将其包含在 META-INF 文件夹中
  • 在 src 目录的 META-INF 中放置了相同的属性文件(绝望的行为)

在我尝试应用插件的每一步之后,我都会收到错误:

  • 未找到 ID 为“myplugin”的插件

我怎样才能做到这一点??

您能否列出使我的插件正常工作的步骤列表? (我是 gradle+groovy 的新手)

感谢您的帮助

【问题讨论】:

    标签: plugins groovy gradle


    【解决方案1】:

    用户指南的chapter 58 包含您需要的所有信息。总结:

    • 将您的myPlugin.properties 放入您的项目结构中,在 src/main/resources/META-INF /gradle-plugins/
    • 像往常一样构建你的 jar
    • 在您希望使用此插件的脚本中,将buildscript 闭包添加到以下内容:

      buildscript {
          repositories {
              flatDir dirs: "build/libs"
          }
          dependencies {
              classpath "your.group:your-plugin:1.0.0"
          }
      }
      

    或者你想要的repositoriesdependencies 的任何设置,但是你需要像我在这里所做的那样使用classpath 配置。我认为您不能(或不应该!)像您那样将 jar 添加到 Gradle 的插件目录中。

    注意: flatDir 不解析传递依赖。依赖管理的相同规则适用于构建脚本,因此您可以使用常规 maven 或 ivy 存储库来部署您的插件。

    【讨论】:

    • 我已经尝试过了,但仍然出现以下错误:无法解析配置“:classpath”的所有依赖项。 > 找不到 org.gradle.mypluginpack:MyPlugin:1.0-SNAPSHOT。要求::test:unspecified
    • 好吧,您指定的存储库可能不包含您的插件的 jar。我的flatDir 只是为了举例。依赖管理的相同规则适用于 buildscript 闭包。
    • 在我看来这行不通,因为它不包含该插件的依赖项
    • @VicSeedoubleyew 这个问题没有提到插件的任何依赖关系,我在之前的评论中确实提到依赖管理适用于构建脚本; flatDir 是为了示例,不会解决任何依赖关系,但您仍然可以使用自定义 maven/ivy 存储库来解决传递依赖关系。我会更新答案以澄清。
    【解决方案2】:

    查看完整 Gradle 分发版(或 GitHub)中的 samples/customPluginsamples/customDistribution 示例。他们应该拥有您需要的所有信息。

    【讨论】:

      猜你喜欢
      • 2021-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-13
      • 1970-01-01
      • 2017-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多