Хорошо, у меня есть проект, который предоставляет библиотеку (экспортирует некоторые функции), а также должен предоставлять интерфейс командной строки (должен быть исполняемый файл).Имеет ли смысл иметь два пакета в одном каталоге? (golang)
Пример структуры каталогов:
whatever.io/
myproject/
main.go
myproject.go
хода компилятору нужен пакета основного и FUNC основного начать выполнение. Моей библиотеке нужен пакет myproject, где я помещал вещи на него. Это то, что говорит инструмент идти, когда я строю еще один проект, который пытается импортировать MyProject:
main.go:5:2: found packages myproject (myproject.go) and main (main.go) in $GOPATH/src/whatever.io/myproject
Так я считаю, что нет никакого способа сделать это.
Должен ли я переместить библиотеку или CLI в другой пакет?
Так что в принципе да, я должен его переместить. Благодарю. – xrash
@xrash, но, пожалуйста, подумайте о том, чтобы изменить импорт в коде вашей команды на 'whatever.io/myproject' - не использовать относительный импорт (см. [Это обсуждение] (http://stackoverflow.com/q/10687627/720999), например, и указатели, которые он содержит). – kostix
Относительные пути одобрены только в том случае, если каждый пакет находится в пределах их собственного каталога и ссылается на GOPATH. В противном случае 'go build' может завершиться ошибкой. –