go build продолжает жаловаться, что: go.mod имеет путь к модулю post-v0 - PullRequest
0 голосов
/ 28 августа 2018

После выпуска Go 1.11 я пытался переместить свои репозитории в модули Go, добавив файл go.mod в их корень.

Одна из моих корневых библиотек my.host/root находится в ее версии 17.0.1, поэтому я написал в ее go.mod файле:

module my.host/root/v17

Я отметил эту версию v17.0.1, как описано в руководстве к модулям Go.

Когда я пытаюсь создать новый проект Go, использующий мою корневую библиотеку, например:

package main

import root "my.host/root/v17"

func main() {
    root.DoSomething()
}

И попробуйте скомпилировать, я получаю следующую ошибку:

go: my.host/root@v0.0.0-20180828034419-6bc78016491a: go.mod имеет путь к модулю post-v0 «my.host/root/v17» в редакции 6bc78016491a

Я затрудняюсь понять, почему это происходит. Я явно добавил v17.0.1 в файл go.mod, но каждая попытка go build заменяет запись на версию v0.0.0-20180828034419-6bc78016491a, которая затем завершается неудачей, потому что при этой фиксации запись go.mod file module моей корневой библиотеки действительно заканчивается v17, как и должно быть.

Для записи этот коммит совпадает с помеченной v17.0.1 версией.

Что я здесь не так делаю? Как я могу отладить эту ситуацию?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Я получил ошибку: github.com/emicklei/go-restful@v0.0.0-20180531035034-3658237ded10: go.mod has post-v0 module path "github.com/emicklei/go-restful/v2" at revision 3658237ded10

Добавление github.com/emicklei/go-restful с v2 примерно так: github.com/emicklei/go-restful/v2 в моем go.mod файле исправило это для меня.

0 голосов
/ 28 августа 2018

Я сделал две ошибки:

  • Мой начальный тег v17.0.0 будет указывать на коммит, где go.mod не содержит суффикса пути импорта v17. В результате кажется, что инструментальные средства Go рассматривают всю основную версию v17 вместо v0 / v1, , даже если более поздние теги v17 указывают на фиксацию с правильной директивой go.mod , отсюда перевод идентификатора фиксации " ».
  • В моих зависимых проектах в файле go.mod я по ошибке указал require my.host/root v17.0.1 вместо require my.host/root/v17 v17.0.1.

После исправления этих проблем все кажется нормальным и работает отлично. Я хотел бы, чтобы документация была более ясной по этому поводу, но я думаю, что это хорошая возможность внести свой вклад!

...