什么是“项目”?
也许有这个习语的技术定义,不包括构建脚本。但是,如果我们接受这个定义,那么我们必须说您的“项目”不是您需要版本控制的所有内容!
但是,如果我们说“您的项目”就是您所做的一切。然后我们可以说您必须将其包括在内,并且仅将其包含在VCS中。
对于我们的开发工作,这是非常理论上的,也许不切实际。因此,我们将其更改为“ 您的项目是您需要直接对其进行编辑的每个文件(或文件夹) ”。
“直接”是指“不是间接地”,“间接”是指通过编辑另一个文件,然后效果将反映到该文件中。
因此,我们达到了OP所说的(并在这里说):
我认为生成的文件不应该在VCS中。
是。因为您尚未创建它们。因此,根据第二个定义,它们不属于“您的项目”。
这些文件的结果是什么:
build.gradle:是的。我们需要对其进行编辑。我们的作品应进行版本控制。
注意:编辑位置没有区别。无论是在文本编辑器环境中还是在Project Structure GUI环境中。无论如何,您直接这样做!
gradle-wrapper.properties:是的。我们至少需要确定此文件中的Gradle版本。
gradle-wrapper.jar和gradlew [.bat]:到目前为止,我还没有在我的任何开发工作中创建或编辑它们!因此答案是“否”。如果您这样做了,那么答案是对您的工作是“是”(关于您编辑的同一文件)。
在有关最新的情况下重要的注意事项是谁克隆你的回购的用户,需要执行这个命令回购的<root-directory>
,以自动生成打包程序文件:
> gradle wrapper --gradle-version=$v --distribution-type=$distType
$v
并且$distType
由gradle-wrapper.properties确定:
distributionUrl=https\://services.gradle.org/distributions/gradle-{$v}-{$distType}.zip
有关更多信息,请参见https://gradle.org/install/。
gradle
可执行文件bin/gradle[.bat]
在本地分发。不需要本地分布与回购中确定的相同。经过包装的文件,然后创建gradlew[.bat]
可以下载自动确定摇篮分配(如果不是本地存在)。然后,他/她可能必须gradle
按照上述说明使用新的可执行文件(在下载的发行版中)重新生成包装文件。
注意:在上述说明中,假设用户在本地至少有一个 Gradle发行版(例如~/.gradle/wrapper/dists/gradle-4.10-bin/bg6py687nqv2mbe6e1hdtk57h/gradle-4.10
)。它涵盖了几乎所有实际案例。但是,如果用户还没有任何发行版怎么办?
他/她可以使用.properties
文件中的URL手动下载它。但是,如果他/她未将其定位在包装程序期望的路径中,则包装程序将再次下载它!预期的路径是完全可预测的,但不在主题范围内(有关最复杂的部分,请参见此处)。
还有一些更简单(但肮脏)的方法。例如,他/她可以将包装文件(.properties
文件除外)从任何其他本地/远程存储库复制到他/她的存储库,然后gradlew
在他/她的存储库上运行。它将自动下载合适的发行版。