如何使用 gradle 包装器、初始化脚本、多项目和最好的想法

How to work with gradle wrapper, init script, multi project and best with idea

总结组件和环境:

所以,

Q: 如何优雅地嫁接这些组件。如何在不影响其他存储库的情况下定义要在单个存储库的包装器中使用的初始化脚本。

我知道:

发现的问题:

约束: (虽然这些是可能的答案,但它们既不优雅也不证明错误)

隐藏问题:

您可以执行以下操作:

  1. 使用初始化脚本
  2. 中定义的常用设置创建自定义 gradle 分发
  3. 通过 gradle/wrapper/gradle-wrapper.properties
  4. 中的 distributionUrl 键将您的项目配置为使用该分布
  5. 使用常规 gradle 从命令构建 line/usual 导入到 intellij - 它可以正常工作

顺便说一下,有一个 gradle plugin 用于简化自定义 gradle 分发构造

您可以使用buildSrc customization - 取决于您的需要 -

其中 buildSrc/build.gradle 在项目的配置阶段之前生效。

您应该知道,有一个不同的范围,即 buildSrc/build.gradleallprojects 的范围是 buildSrc 下面的任何项目,而不是您的正常项目。 更一般地说:buildSrc/build.gradle 就像您在 buildscript 中正常执行的操作或 script plugins and you can write clean plugin code 中的任务声明一样,无需将其发布为插件。

⚠️ 限制:

  1. 你不能关心插件解析 - 因此你必须进入你的项目settings.gradle
  2. 您不能更改项目的依赖管理 - 您仍然必须在项目的 buildSrc 中执行此操作

两者你都可以看到How can the gradle plugin repository be changed?

  1. 你仍然需要在你的项目中应用(甚至是自己 buildSrc homed)插件(如果你问我什么是好事,因为它更可见/更清楚会发生什么)
  2. 你不能与第二个存储库共享这个 - 不使用 git 子模块等