我正在尝试了解Gradle Wrapper是如何工作的。在许多源代码库中,我看到以下结构:
projectRoot/
src/
build.gradle
gradle.properties
settings.gradle
gradlew
gradlew.bat
gradle/
wrapper/
gradle-wrapper.jar
gradle-wrapper.properties
我的问题:
1.如何/何时生成gradlew
/gradlew.bat
?当项目首次创建时,你应该只生成一次它们吗?你每次提交/推送更改时都生成它们吗?它们是如何产生的?
1.与上面的问题相同,但是对于gradle/wrapper/*
文件(gradle-wrapper.jar
和gradle-wrapper.properties
)?
1.有时我会在项目的gradle
目录中看到其他*.gradle
文件。这些额外的Gradle文件是什么?它们代表/做什么?自定义插件?
settings.gradle
中的属性与gradle.properties
中应该定义的属性有什么区别?
8条答案
按热度按时间w8biq8rn1#
1.您只需生成一次,然后在想要更改项目中使用的Gradle版本时再次生成。没有必要如此频繁地生成。Here是文档。只需将
wrapper
任务添加到build.gradle
文件并运行此任务以获取 Package 器结构。请注意,您需要安装Gradle才能生成 Package 器。管理g-ecosystem工件的好工具是SDKMAN!。要生成gradle Package 器,请将以下代码段添加到
build.gradle
文件:然后运行:
任务。将生成的文件添加到SCM(例如git),从现在开始,所有开发人员在使用Gradle Wrapper时都将使用相同版本的Gradle。
使用Gradle2.4(或更高版本),您可以设置 Package 器,而无需添加专用任务:
或
所有的细节都可以在这里找到
从Gradle
3.1
--distribution-type
选项也可以使用。选项为binary、all 和 bin。all 还包含源代码和文档。all 在使用IDE时也更好,因此编辑器工作得更好。缺点是构建可能会持续更长时间(需要下载更多数据,在CI服务器上毫无意义),并且会占用更多空间。1.这些是Gradle Wrapper文件。您需要生成它们一次(针对特定版本)并添加到版本控制中。如果您需要更改Gradle Wrapper的版本,请在
build.gradle
中更改版本请参见(1.)并重新生成文件。1.给予一个详细的例子。这样的文件可以具有多个目的:多模块项目、职责分离、稍微修改的脚本等。
settings.gradle
负责项目的结构(模块、名称等),而gradle.properties
用于项目和Gradle的 * 外部 * 细节(版本、命令行参数-XX
、属性等)。gzszwxb42#
生成Gradle Wrapper
项目build gradle
然后在命令行运行
如果你的系统中缺少gradle,请安装它,否则上面的程序将无法工作。在Mac上,最好通过Homebrew安装。
成功运行 Package 器任务并生成
gradlew
后,不要使用系统gradle。它会让你省去很多麻烦。上面看到的gradle插件怎么样?
您应该将版本设置为最新版本,您可以check the tools page并相应地编辑版本。
查看Android Studio生成的内容
gradle和最新Android Studio的加入极大地改变了项目布局。如果你有一个旧的项目,我强烈建议你用最新的Android Studio创建一个干净的项目,看看谷歌认为标准的项目是什么。
Android Studio有导入旧项目的功能,这也会有所帮助。
baubqpgj3#
从Gradle 2.4开始,您可以使用
gradle wrapper --gradle-version X.X
配置Gradle Package 器的特定版本,而无需向build.gradle
文件添加任何任务。下次使用 Package 器时,它将下载相应的Gradle发行版进行匹配。6vl6ewon4#
这是用来告诉Gradle升级 Package 器的命令,这样它就可以获取包含源代码的Gradle jar(只是Gradle,而不是库)的分发版本:
这现在可以使用Gradle构建本身来完成,将root
build.gradle
更改为包含:现在升级gradle Package 器:只需将代码更改为新版本,并在不使用任何参数的情况下运行
wrapper
任务。使用“all”指定分发类型将确保Gradle为自己下载可供您的开发环境使用的源文件。
优点:
缺点:
如果您知道有任何命令行选项可以告诉Gradle不要在构建服务器上下载源代码,请发表评论或提供其他答案。
uz75evzq5#
如果您想下载gradle的源代码和文档,gradle-wrapper.properites中配置的默认分发URL将无法满足您的需求。它是https://services.gradle.org/distributions/gradle-2.10-bin.zip,而不是https:services.gradle.org/distributions/gradle-2.10-all.zip.This完整URL,这是Android Studio等IDE建议的。如果您想下载完整的gradle,您可以这样配置 Package 器任务:
ezykj2lf6#
由于gradle内置任务在4.8中已弃用,请尝试以下操作
然后跑
mzillmmw7#
1.您将生成它们一次,但如果您需要新功能或插件中的某些内容,则需要更新它们,而这些插件又需要更新的gradle版本。
最简单的更新方法:从Gradle 2.2开始,您可以下载并解压完整的或二进制Gradle distribution,然后运行:
不需要定义任务,尽管您可能需要某种
build.gradle
文件。这将更新或创建
gradlew
和gradlew.bat
Package 器以及gradle/wrapper/gradle-wrapper.properties
和gradle-wrapper.jar
,以提供当前版本的gradle, Package 。1.这些都是 Package 的一部分。
1.一些
build.gradle
文件引用其他文件或子目录中的文件,这些子目录是子项目或模块。它变得有点复杂,但如果你有一个项目,你基本上需要一个文件。settings.gradle
处理项目,模块和其他类型的名称和设置,gradle.properties
为你的gradle文件配置可重用的变量,如果你喜欢,你觉得这样会更清楚。wvyml7n58#
如果您使用的是Gradle 7.3.3或更高版本,您只需打开终端并运行:
就这样!