作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将 Git 子模块作为子项目包含到我的主要 Gradle 项目中,但 Gradle 拒绝验证构建脚本,理由是我的项目和子项目都需要相同的插件 ("Plugin request for plugin already on the classpath must not include a version"
)。
从主项目中删除插件不是一种选择,因为插件定义的任务将不再可用于主构建脚本。也不会从主构建脚本中省略插件版本,因为这是 Gradle 看到的插件声明的第一个实例(而在子项目的声明中抛出错误)。
通常我会让我的项目修补这样的不兼容性,但由于构建脚本没有验证,这显然不是一个选项。鉴于我实际上无法控制子项目的构建脚本,可以做些什么来解决冲突?
最佳答案
我有一个类似的问题,我想包含一个也应该能够自行构建的模块。更准确地说,我想要包含的模块也声明了 com.github.johnrengelman.shadow
用于生成可运行的 JAR。这导致了两个 build.gradle 使用版本号声明此插件的文件。
解决方案是使用 Composite Build .这导致模块的构建完全独立,能够声明任何版本的插件。
您所要做的就是添加includeBuild "<pathToSubmodule>"
在你的根目录 settings.gradle :
includeBuild "../submodule"
dependencies {
implementation 'com.mycompany:submodule:1.0-SNAPSHOT'
}
关于gradle - 包括具有相同插件依赖项的第 3 方子项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57815595/
我是一名优秀的程序员,十分优秀!