Необходимо использовать несколько версий Go вместе с Makefiles

Если я работаю над несколькими проектами, где для их сборки требуются разные версии Go, как бы я элегантно настроил свою среду разработки, чтобы справиться с этим?

Каждый проект имеет свой собственный Makefile, который в тот или иной момент будет вызывать команды Go. Проблема в том, что для некоторых проектов требуются разные версии Go, но Makefiles просто использует go build . До сих пор я решил просто добавить нужную версию Go в PATH , например, для проекта 1 требуется go1.12.10, поэтому я просто запускаю

export PATH=<path_to_go1.12.10_>/bin>:$PATH

И когда я хочу собрать проект 2, который требует go1.13.6

export PATH=<path_to_go1.13.6>/bin:$PATH

Это работает, но есть ли более элегантное решение? Модификация систем сборки проектов - это не то, что я могу сделать, по крайней мере, в краткосрочной перспективе.

Всего 1 ответ


Go build не имеет встроенного способа установить версию для сборки, поэтому вы застряли либо устанавливая путь таким, как вы сейчас, либо выполняете явно, используя /<path_to_go1.13.6>/bin/go.

Для версий, с которыми вы работали, действительно не должно быть несовместимости между ними и последней версией go. Один из арендаторов Go - сохранить обратную совместимость практически при любых обстоятельствах. Скорее всего, вам лучше использовать последнюю версию go, и, если что-то мешает вам обновить компилятор, исправьте это.


Есть идеи?

10000