gpt4 book ai didi

go - 无法将简单的 golang 项目推送到 heroku

转载 作者:IT王子 更新时间:2023-10-29 02:21:13 26 4
gpt4 key购买 nike

我的项目“testheeroku7777”由两个文件组成。主要Go:

package main

import "fmt"

func main() {

fmt.Println("Hello world!")

}

简介:

web: testheeroku7777

当我推送时:

testheeroku7777> git push heroku master

报错:

Counting objects: 8, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (8/8), 645.21 KiB | 5.92 MiB/s, done.
Total 8 (delta 1), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> App not compatible with buildpack: https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/go.tgz
remote: More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to testheeroku7777.
remote: To https://git.heroku.com/testheeroku7777.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/testheeroku7777.git'

我已阅读提供的链接,但我不知道这个错误。

最佳答案

这个问题与 Go 的新依赖管理系统有关。 Heroku 正在您的项目中寻找依赖管理系统,但找不到。这就是它抛出错误的原因。即使你的项目很简单,Heroku 也必须有一个它可以识别的依赖管理系统。

使用 Go 模块是 officially-sanctioned method依赖管理。但是——这是一个很大的但是——Go 模块的一个令人惊讶的怪癖是 Go 模块不适用于 GOPATH 中的项目。

当 Go 开始时,开发人员做出了一件大事,将所有项目都放在一个地方,GOPATH。所有文档都明确说明了这一点——这是你的 go 代码必须存储的地方,它不会从其他任何地方运行。但是现在,如果您正在编写需要 Go 模块的代码——并且任何在 heroku 上运行的代码都需要 Go 模块——该代码的目录必须在 GOPATH 之外。我不知道他们为什么不更明确地说明这一点,但事实似乎就是这样。

因此,为了让您的代码正常工作,您需要做的是:

  1. 将你的项目移动到 GOPATH 之外的某个地方——比如桌面,以原创的名义。

  2. 创建一个与当前名称相同的远程 git 存储库项目。

  3. 然后在终端命令中输入 go module 文件在您的本地目录中提示,go mod init
    github.com/myGithubUserName/myProjectName

  4. 接下来,通过在终端中键入 git init 创建本地 git 存储库。

  5. 通过键入 git 来识别您之前创建的远程存储库
    远程添加来源
    http//www.github.com/myGithubUserName/myProjectName.git
    中终端。

  6. 写一些优秀的代码。

  7. 输入 git add 。 && git commit -m “first commit” 在提示符下提交您的代码。

  8. 键入 git push -u origin master 以更新远程存储库。

在所有这些之后,并且只有在所有这些之后,您才准备好输入 git push heroku master。唯一的安慰是现在一切都应该顺利进行。

其他发帖者提到过早期的依赖管理系统,比如 govendordep,但是 Go 模块是官方认可的方法,我想我们现在和以后都要适应它。关于 Go 模块的最受欢迎的教程似乎是这个:https://roberto.selbach.ca/intro-to-go-modules/ .搜索也会找到其他一些。

关于go - 无法将简单的 golang 项目推送到 heroku,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48841627/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com