Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Os aplicativos executados no ambiente de execução padrão do Go 1.11 podem usar
qualquer pacote compatível com linux/amd64.
Como usar os módulos do Go
Recomendamos que você use módulos Go
para gerenciar dependências no app Go, mas
será possível continuar usando o modo GOPATH mais antigo se não estiver pronto para migrar
para módulos Go.
Quando você implanta o aplicativo, o App Engine usa o comando go build para
criar o aplicativo e, portanto, corresponde ao comportamento do Go. Para garantir que o aplicativo
use o modo de reconhecimento de módulo, faça o seguinte
no ambiente de desenvolvimento:
Crie o arquivo go.mod do módulo no mesmo diretório que seu
arquivo app.yaml. O App Engine pesquisa o diretório atual e, em seguida, os diretórios pai sucessivos
até encontrar um arquivo go.mod.
Se o Google App Engine não encontrar um arquivo go.mod, ele seguirá
o modo GOPATH.
Se você configurar a variável de ambiente GO111MODULE,
certifique-se de que o valor da variável ative
o modo de reconhecimento de módulo. Quando você implanta o aplicativo, o App Engine verifica o
ambiente para GO111MODULE e corresponde ao próprio comportamento do Go.
O App Engine só aplicará a configuração da variável GO111MODULE se você tiver
incluído um arquivo go.mod para o aplicativo.
Não coloque o diretório do seu app em $GOPATH/src ou abaixo dele. Se o aplicativo estiver
em qualquer lugar na árvore de diretórios $GOPATH/src, o App Engine seguirá
o modo GOPATH, mesmo que você tenha definido um arquivo go.mod para o aplicativo.
Como usar dependências privadas
O App Engine não pode fazer o download das dependências particulares durante o
processo de criação. Portanto, você precisa incluí-las com o código do aplicativo na implantação.
Você precisará usar a diretiva replace no arquivo go.mod para declarar
dependências particulares. O exemplo a seguir supõe que seu aplicativo esteja no
diretório /myapp/:
Altere para o diretório do aplicativo:
cd /myapp
Crie um diretório contendo suas dependências particulares:
mkdir private
Verifique se a dependência particular está no diretório private. Uma
abordagem é criar um link simbólico:
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-30 UTC."],[[["\u003cp\u003eApps in the Go 1.11 standard runtime can utilize any linux/amd64-compatible package, but all import statements must use absolute paths.\u003c/p\u003e\n"],["\u003cp\u003eGo modules are recommended for dependency management, but older GOPATH mode is still supported if you are not ready to migrate.\u003c/p\u003e\n"],["\u003cp\u003eApp Engine uses the \u003ccode\u003ego build\u003c/code\u003e command, and to ensure module-aware mode, you should create a \u003ccode\u003ego.mod\u003c/code\u003e file in the same directory as your \u003ccode\u003eapp.yaml\u003c/code\u003e file or a parent directory.\u003c/p\u003e\n"],["\u003cp\u003eIf using the \u003ccode\u003eGO111MODULE\u003c/code\u003e environment variable, ensure its value enables module-aware mode, and it will only be applied if a \u003ccode\u003ego.mod\u003c/code\u003e file exists.\u003c/p\u003e\n"],["\u003cp\u003ePrivate dependencies must be included with your application code upon deployment, and you must utilize the \u003ccode\u003ereplace\u003c/code\u003e directive in your \u003ccode\u003ego.mod\u003c/code\u003e file to point to the local directory containing them.\u003c/p\u003e\n"]]],[],null,["# Specifying Dependencies\n\n\u003cbr /\u003e\n\nApps that run in the Go 1.11 standard runtime can use any\nlinux/amd64-compatible package.\n| **Important:** App Engine requires all import statements in your Go code to specify absolute paths. For example, use: \n|\n| ```\n| import \"github.com/example/mypackage\"\n| ```\n\nUsing Go modules\n----------------\n\nWe recommend that you use [Go modules](https://blog.golang.org/using-go-modules)\nto manage dependencies in your Go app, but\nyou can continue to use the older GOPATH mode if you aren't ready to [migrate\nto Go modules](https://blog.golang.org/migrating-to-go-modules).\n\nWhen you deploy your app, App Engine uses the `go build` command to\nbuild your app and therefore matches the behavior of Go itself. To ensure that\nyour app uses module-aware mode, do the following in your development\nenvironment:\n\n- Create your module's `go.mod` file in the same directory as your `app.yaml`\n file. App Engine searches the current directory, then successive\n parent directories until it finds a [`go.mod` file](https://golang.org/cmd/go/#hdr-Defining_a_module).\n\n If App Engine doesn't find a `go.mod` file, it follows\n GOPATH mode.\n- If you set the [`GO111MODULE` environment variable](https://golang.org/ref/mod#mod-commands),\n make sure the variable's value enables\n module-aware mode. When you deploy your app, App Engine checks your\n environment for `GO111MODULE` and matches the behavior of Go itself.\n App Engine only applies the `GO111MODULE` variable setting if you have\n included a `go.mod` file for your app.\n\n\u003c!-- --\u003e\n\n- Do not locate your app directory in or below `$GOPATH/src`. If your app is anywhere in the `$GOPATH/src` directory tree, App Engine follows GOPATH mode even if you've defined a `go.mod` file for your app.\n\n### Using private dependencies\n\nApp Engine cannot download your private dependencies during the build\nprocess, so you must include them with your application code upon deployment.\n\nYou will need to use the `replace` directive in your `go.mod` file to declare\nprivate dependencies. The following example assumes your app is in the `/myapp/`\ndirectory:\n\n1. Change to your app directory:\n\n cd /myapp\n\n2. Create a directory containing your private dependencies:\n\n mkdir private\n\n Make sure your private dependency is in the `private` directory. One\n approach is by creating a symlink: \n\n mkdir private/private.example.com\n ln -s /path/to/private.example.com/foo private/private.example.com/foo\n\n3. Update your `go.mod` file to use the `replace` directive to use the `private`\n directory for your dependency:\n\n go mod edit -replace=private.example.com/foo=./private/private.example.com/foo\n\n Your `go.mod` file should now look like: \n\n ### Final `go.mod` file\n\n module private.example.com/myapp\n\n require private.example.com/foo v1.2.3\n\n replace private.example.com/foo =\u003e ./private/private.example.com/foo\n\n ### Original `go.mod` file\n\n module private.example.com/myapp\n\n require private.example.com/foo v1.2.3\n\n4. Do not modify how you import and use your private package. Your `import`\n statement should look like:\n\n import \"private.example.com/foo\"\n\n5. Include your private dependency in your deployment by deploying your app:\n\n gcloud app deploy\n\n\u003cbr /\u003e"]]