Что такое "проект"?
Возможно, есть техническое определение этой идиомы, которое исключает сценарии сборки. Но если мы примем это определение, то мы должны сказать, что ваш «проект» - это не все, что вам нужно для версионности!
Но если мы говорим «ваш проект», это все, что вы сделали . Тогда мы можем сказать, что вы должны включить его и только его в VCS.
Это очень теоретически и, возможно, не практично в случае наших разработок. Поэтому мы изменили его на « ваш проект - это каждый файл (или папка), который вам нужно редактировать напрямую ».
«напрямую» означает «не косвенно», а «косвенно» означает редактирование другого файла, после чего эффект будет отражен в этом файле .
Таким образом, мы достигаем того же, что сказал OP (и сказано здесь ):
Я думаю, что сгенерированные файлы не должны быть в VCS.
Да. Потому что вы их не создали. Таким образом, они не являются частью «вашего проекта» согласно второму определению.
Каков результат этих файлов:
build.gradle : да. Нам нужно отредактировать это. Наши работы должны быть версионными.
Примечание: нет разницы, где вы редактируете это. В среде вашего текстового редактора или в среде с графическим интерфейсом структуры проекта . В любом случае вы делаете это напрямую !
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 локально (например ~/.gradle/wrapper/dists/gradle-4.10-bin/bg6py687nqv2mbe6e1hdtk57h/gradle-4.10
). Он охватывает практически все реальные случаи. Но что произойдет, если у пользователя еще нет рассылки?
Он / она может загрузить его вручную, используя URL-адрес в .properties
файле. Но если он / она не найдет его по пути, ожидаемому упаковщиком , оболочка загрузит его снова! Ожидаемый путь полностью предсказуем, но находится вне темы ( самую сложную часть см. Здесь ).
Есть также несколько более простых (но грязных) способов. Например, он / она может копировать файлы-оболочки (кроме .properties
файла) из любого другого локального / удаленного репозитория в свой репозиторий и затем запускать gradlew
в своем репозитории. Он автоматически загрузит подходящий дистрибутив.