我们正在将内部代码库从dep依赖项管理器转换为go模块(vgo或使用go1.11.2内置)。假设我们有这样的代码:
$ GOPATH / src / mycompany / myprogram / main.go:
package main
import (
"fmt"
lib "mycompany/mylib" )
func main() {
fmt.Println("2+3=", lib.add(2, 3))
}
Run Code Online (Sandbox Code Playgroud)
$ GOPATH / src / mycompany / myprogram / go.mod:
module mycompany/myprogram
Run Code Online (Sandbox Code Playgroud)
(它没有任何依赖关系;我们的实际代码中有)。
$ GOPATH / src / mycompany / mylib / lib.go:
package mylib
func Add(x int, y int) int {
return x + y
}
Run Code Online (Sandbox Code Playgroud)
我没有将此代码模块化。不管我是否做都不重要。
这些是简单的示例,但是我们的内部代码遵循与历史上类似的结构。
由于这些目录位于Gopath上,因此export GO111MODULE=auto仍可以像以前一样进行构建,并且可以正常工作(未使用模块,因为我们位于gopath上)。但是,设置后,export GO111MODULE=on我立即收到错误消息:
build mycompany/myprogram: cannot find …Run Code Online (Sandbox Code Playgroud) 我在Haskell相对缺乏经验,我想改进,所以对于我的学习项目,我有以下要求:
.md.toplevel/.excluded..filename.md.swp.我搜遍了所有的SO.这是我到目前为止所拥有的:
import qualified System.FilePath.Find as SFF
import qualified Filesystem.Path.CurrentOS as FP
srcFolderName = "src"
outFolderName = "output"
resFolderName = "res"
ffNotHidden :: SFF.FindClause Bool
ffNotHidden = SFF.fileName SFF./~? ".?*"
ffIsMD :: SFF.FindClause Bool
ffIsMD = SFF.extension SFF.==? ".md" SFF.&&? SFF.fileName SFF./~? ".?*"
findMarkdownSources :: FilePath -> IO [FilePath]
findMarkdownSources filePath = do
paths <- SFF.find ffNotHidden ffIsMD filePath
return paths
Run Code Online (Sandbox Code Playgroud)
这不起作用.在"findMarkdownSources"中进行printf风格的调试,我可以验证filePath是否正确,例如"/home/user/testdata"(打印包含",如果告诉你的话).列表paths总是空的.我绝对肯定目录中有markdown文件我已指定(find/path/to/dir -name"*.md"找到它们).
因此,我有一些具体的问题.