/ / Работа с хранилища Go Git и нейните некодирани ресурси - git, build, go, build-process

Работа с хранилища Go Git и нейните некодирани ресурси - git, build, go, build-process

Аз съм нов, и аз се боря да намеря най-добрия начин да се справя с хранилищата на Git.

В този момент използвам официалната структура на директорите на Go, но мисля, че има много клопки.

Това е нещо като

$GOPATH
bin
non-important-stuff
pkg
non-important-stuff
src
github.com
username
reponame

Случаят е, че имам много некодиращи ресурси,като шаблони за настройки по подразбиране, html шаблони и изображения ... но ми се струва малко странно да го поставя в директорията "src / github.com / username / reponame" (защото първата част "src").

Какви са най-често срещаните решения на този проблем?

Друг проблем, пред който се изправям сега, е, че не го правяпознават най-често използваните инструменти за създаване на цял проект с външни ресурси като файлове с настройки по подразбиране или html (командите "go build / install" се грижат само за файловете на изходния код). Как се грижите за относителните пътища, когато изпълнителният файл е "инсталиран"?

Опровержение: Прочетох тази тема: Как да осъществите достъп до ресурсни файлове, след като инструментът "go" е инсталирал изпълнимия файл? , но не видях надеждни решения. Изпълнимият ми файл е сървър и не е опция за вграждане на файловете с настройки и прекомпилиране всеки път, когато искам да преконфигурирам сървъра (а не неговата възможност да предаде всички параметри на настройките чрез параметри за изпълнение, защото файлът с настройките е много комплекс).

Отговори:

1 за отговор № 1

Предполагам, че става дума за уеб програмиране.

Както правилно отбелязахте, структурата на директорията е предназначена за кода, а инструментът Go Tool се грижи само за изграждането на двоични файлове и за поставянето им на конвенционално място (pkg или bin).

Това, което искате, е пълна процедура за внедряване на бинарни файлове с ресурси.

Трябва или да включите собствената си процедура за внедряване, или да използвате съществуваща рамка.

Скица на домашна процедура:

  • поставете всички ресурси под определена директория във вашия проект (напр. resources/)
  • употреба git archive resources/ за да обедините файловете
  • копирайте файловете до изпълнимия файл
  • изберете начин за коригиране на локалните параметри (db сървър, db име и др.)
  • изберете начин да направите вашия сървър да презареди ресурсите (рестартирайте сървъра си / систематично отново прочетете ресурсите / проверете датите на промяна / ...)

Ако търсите съществуваща уеб рамка:

Revel е една от възможностите, която се грижи за многобройни точки, между които гореща recompilation по време на развитие, и a процедура за разгръщане.