当前位置: 首页 > 知识库问答 >
问题:

分级插件依赖

吴宏扬
2023-03-14

在Java中开发Gradle插件所需要的确切依赖是什么?理想情况下,我希望从一个著名的存储库(如Maven Central或类似的存储库)获取它。

我有一个具有核心功能的Maven项目,我刚刚添加了两个额外的插件,一个用于Ant,一个用于Maven。它们已经经过测试并正在工作;放轻松!现在,我想为Gradle插件添加第三个模块,以使该功能也可从任何Gradle项目中获得。

    null

如果有人能告诉我从哪里可以得到这些依赖,我会非常感谢。

共有1个答案

乐正育
2023-03-14

Gradle的公共和内部API(又名GradleAPI())与Gradle发行版捆绑在一起,并不独立发布,因此Maven构建不容易使用。有一个待定的epic#1156(通过允许用户依赖gradlePublicApi()来确保插件的跨版本兼容性)可能会在这里有所帮助。

由于Gradle插件最好用Gradle构建,一个实用的解决方案是从Maven调用Gradle构建,并将生成的工件附加到Maven构建。Andres Almiray(aalmiray)曾在blog post Running Gradle Inside Maven(Web存档链接)中描述过这一点。他描述了以下高级步骤:

  1. 创建一个新的Maven模块(例如gradle-plugin)并将其添加到父POM
  2. gradle-plugin的POM中,向您的core模块添加一个依赖项。使用maven-dependency-plugin将依赖项存储到Maven构建文件夹,例如target/dependencies.
  3. 创建build.gradle,添加指向目标/依赖项的Maven存储库(步骤2),并让它依赖于核心模块以及gradleAPI()。实现Gradle插件。
  4. 使用exec-maven-plugin调用Gradle构建。
  5. 使用maven-resources-plugin将Gradle构建的插件JAR复制到标准Maven构建文件夹。
  6. 使用build-helper-maven-plugin将复制的JAR附加到Maven构建。

样例项目可在此找到(gradle-in-maven)。

 类似资料:
  • 我有一个gradle构建,它依赖于一个在buildSrc目录中编译的插件(MyTools)。这部分工作正常。我遇到的问题是试图从外部jar导入一个类以在myTools插件的源代码中使用。 我的目录结构如下: buildsrc ----build.gradle -----build.gradle -----settings.gradle -------libs -------Yuicompresso

  • 我正在尝试编译几个WAR文件,所有这些都依赖于一个公共的JAR模块。然而,在我的Gradle构建中,我似乎无法获得类似于“提供”的依赖关系来使用Java插件。 然而,最后这一位将生成具有适当依赖关系的变量newRuntime,然而,当我试图将该变量重新分配回运行时配置时,它抛出一个“无法找到属性异常”。 我在Gradle的bug跟踪中发现了很多关于这个问题的讨论:Gradle-784 然而,这方面

  • 在使用Gradle插件和的多模块项目中,正确的Gradle配置是什么样子的? 我有以下项目设置: 模块包含公共项目配置。 模块是一个我希望使用spring-boot-dependencies bom中指定的版本号导入依赖项的模块,但结果是一个标准JAR。 模块是一个依赖于的模块,其结果是一个可执行的spring boot jar文件(包括所有依赖项)。因此,该项目既需要也需要插件。 为了保持Gra

  • 我正在尝试得到一个新的项目,并使用一个私人的artifactory gradle repo运行。我能够通过artifactory获得它解析工件,但是当我尝试将spring io&boot引入混合时,spring依赖项管理插件似乎没有在请求依赖项时添加版本,导致构建失败: 我可以在https://my-website.com/artifactory/gradle-release/org/spring

  • 依赖 AdminLTE 依赖两个主要的框架。下载的软件包中已经包含这两个库,因此你不必手动下载它们。 Bootstrap 4 jQuery 3.3.1+ Popper.js 1.14.7+ 下面列出了所有其他插件 插件 AdminLTE 使用以下插件。相关文档,更新或许可证信息,请访问提供的链接。 你需要手动加载插件的 js/css 文件。 AdminLTE 不会自动加载所有插件,这会造成页面加载