O que é o "projeto"?
Talvez haja uma definição técnica desse idioma que exclua os scripts de construção. Mas se aceitarmos essa definição, devemos dizer que seu "projeto" não é tudo o que você precisa para a versão!
Mas se dissermos "seu projeto" é tudo o que você fez . Então podemos dizer que você deve incluí- lo e somente ele no VCS.
Isso é muito teórico e talvez não seja prático no caso de nossos trabalhos de desenvolvimento. Então, alteramos para " seu projeto é todo arquivo (ou pasta) necessário para editá-los diretamente ".
"diretamente" significa "não indiretamente" e "indiretamente" significa editando outro arquivo e, em seguida, um efeito será refletido nesse arquivo .
Portanto, chegamos ao mesmo que o OP disse (e é dito aqui ):
Eu acho que os arquivos gerados não devem estar no VCS.
Sim. Porque você não os criou. Portanto, eles não fazem parte do "seu projeto" de acordo com a segunda definição.
Qual é o resultado desses arquivos:
build.gradle : Sim. Precisamos editá-lo. Nossos trabalhos devem ser versionados.
Nota: Não há diferença em onde você o edita. Seja no seu ambiente de editor de texto ou no ambiente da GUI do Project Structure . Enfim, você está fazendo isso diretamente !
gradle-wrapper.properties : Sim. Precisamos pelo menos determinar a versão Gradle neste arquivo.
gradle-wrapper.jar e gradlew [.bat] : Eu não os criei ou editei em nenhum dos meus trabalhos de desenvolvimento até o momento! Então a resposta é "Não". Se você fez isso, a resposta é "Sim" sobre você nesse trabalho (e sobre o mesmo arquivo que você editou).
A observação importante sobre o caso mais recente é que o usuário que clona seu repositório precisa executar este comando nos repositórios<root-directory>
para gerar automaticamente arquivos wrapper:
> gradle wrapper --gradle-version=$v --distribution-type=$distType
$v
e $distType
são determinados em gradle-wrapper.properties :
distributionUrl=https\://services.gradle.org/distributions/gradle-{$v}-{$distType}.zip
Consulte https://gradle.org/install/ para obter mais informações.
gradle
executável é bin/gradle[.bat]
na distribuição local. Não é necessário que a distribuição local seja a mesma que a determinada no repo. Após a criação dos arquivos wrapper , é gradlew[.bat]
possível fazer o download da distribuição Gradle determinada automaticamente (se não existir localmente). Então ele / ela provavelmente deve gerar novamente os arquivos do wrapper usando o novo gradle
executável (na distribuição baixada) usando as instruções acima.
Nota: Nas instruções acima, o usuário deve ter pelo menos um distribuição Gradle localmente (por exemplo ~/.gradle/wrapper/dists/gradle-4.10-bin/bg6py687nqv2mbe6e1hdtk57h/gradle-4.10
). Abrange quase todos os casos reais. Mas o que acontece se o usuário ainda não tiver distribuição?
Ele / ela pode fazer o download manualmente usando o URL no .properties
arquivo. Mas se ele / ela não o localizar no caminho que o invólucro esperado, a embalagem vai baixá-lo novamente! O caminho esperado é completamente previsível, mas está fora do assunto (veja aqui a parte mais complexa).
Existem também algumas maneiras mais fáceis (mas sujas). Por exemplo, ele / ela pode copiar arquivos de invólucro (exceto .properties
arquivo) de qualquer outro repositório local / remoto para seu repositório e, em seguida, executar gradlew
em seu repositório. Ele fará o download automático da distribuição adequada.