从另一个模块导入包

时间:2020-09-30 09:35:52

标签: go desktop-application wails

由于这一要求以及我在Web开发中的知识,我必须使用Wails,因此必须在现有Go后端代码的基础上创建一个桌面应用程序。

使用Wails CLI,我在后端主项目的子文件夹中生成了桌面应用程序项目。 文件夹结构如下所示:

backend
├── [...]
├── logger
│   └── logger.go
├── gui
│   └── desktopApp
│       ├── build
│       │   └── desktopApp
│       ├── frontend
│       │   └── [...]
│       ├── go.mod
│       ├── go.sum
│       ├── main.go
│       └── project.json
├── main.go
├── go.mod
└── go.sum

logger已导入desktopApp,并且在开发和通过浏览器进行测试期间一切正常。但是,当我从desktopApp文件夹中使用命令wails build构建桌面应用程序时,出现以下错误:

go: <domain>/<owner>/backend/logger: unrecognized import path "<domain>/<owner>/backend"

我将后端导入桌面应用程序是这样的:

/backend/gui/desktopApp/go.mod

module desktopApp

go 1.15

require (
    <domain>/<owner>/backend v0.0.0
)

./ gui / desktopApp / main.go

package main

import (
    "github.com/leaanthony/mewn"
    "github.com/wailsapp/wails"

    "<domain>/<owner>/backend/logger"
)

// Using the logger package normally

如何解决我的问题?

2 个答案:

答案 0 :(得分:1)

我发现您使用go-module并将代码存储在repo中的sub-module

问题是您忘记添加“ desktopApp”前缀

import (
    "github.com/leaanthony/mewn"
    "github.com/wailsapp/wails"

    "desktopApp/backend/backendPackage"
)

正确使用modules??

修复go.mod模块中的desktopApp

module <domain>/<owner>/desktopApp

go 1.15

修复backend的导入,因为它属于desktopApp

import (
    "github.com/leaanthony/mewn"
    "github.com/wailsapp/wails"

    "<domain>/<owner>/desktopApp/backend/backendPackage"
)

答案 1 :(得分:0)

我解决了如下更改嵌套桌面应用程序的go.mod文件的问题:

module desktopApp

go 1.15

require (
    <domain>/<owner>/backend/logger
)
// Added this line
replace <domain>/<owner>/backend/logger => ../../
相关问题