如何将外部包添加到 Google App Engine 的 GoClipse 项目?

发布于 2024-12-06 15:30:11 字数 244 浏览 0 评论 0原文

我已经编译了 Goauth,以便可以在我的 Go Google App Engine 项目中使用 OAuth。我应该将 goauth.a 文件放在哪里,以便我既可以在项目中使用它,又可以在部署到 GAE 服务器时使用它?如果我将它放在 $GOROOT/pkg 的子文件夹中,我可以让它在本地工作,但是在部署时编译时找不到它。

GoClipse 设置了一个包含很多文件夹的项目,我不太确定它们的目的是什么,我应该把 goauth.a 放在哪里以及如何导入它?

I've compiled Goauth so that I can use OAuth in my Go Google App Engine project. Where do I put the goauth.a file so that I can both use it in the project, and have it available when deploying to the GAE servers? I can get it working locally if I put it in a subfolder of $GOROOT/pkg, but then it can't be found when compiling at deployment time.

GoClipse sets up a project with lots of folders, I'm not really sure what their purpose is, where should I put goauth.a and how do I import it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

春花秋月 2024-12-13 15:30:11

为了解决这个问题,我最终将包的源代码包含在我的应用程序的目录树中,如 google-appengine-go 组 http://groups.google.com/group/google-appengine-go/browse_thread/thread/1fe745debc678afb

以下是该线程的重要部分:

您可以根据需要包含任意数量的包。包已导入
通过相对于基本目录的路径(包含您的 app.yaml 的目录)
文件),所以如果您有以下内容:

helloworld/app.yaml
helloworld/hello/hello.go // 封装 hello
helloworld/world/world.go // 包 world

您可以在 hello 中导入“world”,并在 world 中导入“hello”。

如果您包含第三方库,它可能看起来像这样:

helloworld/app.yaml
helloworld/hello/hello.go // 封装 hello
helloworld/world/world.go // 包 world
helloworld/goprotobuf.googlecode.com/proto/*.go // 包原型

然后您可以像往常一样导入“goprotobuf.googlecode.com/proto”。

To fix this I ended up including the source for the package in the directory tree for my app, as mentioned in this thread on the google-appengine-go group http://groups.google.com/group/google-appengine-go/browse_thread/thread/1fe745debc678afb

Here is the important part of the thread:

You may include as many packages as necessary. Packages are imported
by path relative to the base directory (the one that has your app.yaml
file), so if you have the following:

helloworld/app.yaml
helloworld/hello/hello.go // package hello
helloworld/world/world.go // package world

you can import "world" in hello and import "hello" in world.

If you are including a third-party library, it might look something like this:

helloworld/app.yaml
helloworld/hello/hello.go // package hello
helloworld/world/world.go // package world
helloworld/goprotobuf.googlecode.com/proto/*.go // package proto

Then you can, as normal, import "goprotobuf.googlecode.com/proto".

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文