如何使用gradle包装器,init脚本,多项目和最好的想法

时间:2016-02-25 16:38:21

标签: intellij-idea gradle build.gradle gradlew

总结组件和环境:

所以,

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

我知道:

  • init脚本在" GRADLE_HOME"中是典型的。目录
  • 可以通过-I每个控制台定义init脚本 (是的,我阅读了文档)

发现问题:

  • intelliJ不允许在UI中定义-I选项
  • 如果您想在项目之间共享
  • ,任何人都需要结帐并更新单独的存储库
  • settings.gradle || <{3}}文件似乎不支持任何选项

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

  • 所需的解决方案应适用于SINGLE项目,不应全局应用于同一台计算机上的所有项目

隐藏的问题:

  • 我可以从网址中添加全局gradle设置,这样就不需要复制meta-repo了吗?
  • gradle.properties是否与init脚本相同?或者你可以用initScript做什么,你可以包含什么?

2 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

  1. 使用初始化脚本中定义的常用设置创建自定义gradle分发
  2. 通过 gradle / wrapper / gradle-wrapper.properties
  3. 中的 distributionUrl 键配置您的项目以使用该发行版
  4. 使用命令行中的常规gradle构建/通常导入intellij-它确实有效

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

答案 1 :(得分:0)

您可以使用buildSrc customization-根据需要-

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

您应该知道,存在不同的范围,即buildSrc/build.gradle的{​​{1}}的范围是allprojects以下的任何项目,而不是常规项目。 更笼统地说:buildSrc就像您在buildSrc/build.gradle中通常执行的操作或script plugins中的任务声明一样,您可以编写简洁的plugin code而无需将其发布为插件。

⚠️限制:

  1. 您不必担心插件解析-因此您必须进入项目buildscript
  2. 您无法更改项目的依赖管理-您仍然必须在项目的buildSrc中执行此操作

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

  1. 您仍然必须在项目中应用插件(甚至是settings.gradle自身的插件)(如果您问我,这是一件好事,因为它更明显/更清楚了会发生什么)
  2. 您不能与第二个存储库共享它-不使用git子模块等。