Git 部分重用makefile的模式

Git 部分重用makefile的模式,git,go,makefile,Git,Go,Makefile,我现在在golang创建越来越多的小型一次性项目,但我看到许多makefile任务实际上是跨项目复制和粘贴的。例如,在每个项目中,我都有一个: ${APP_NAME}: $(SOURCES) go get ./... goimports -w $(SOURCES) go build -o ${APP_NAME} 我想知道,是否有人有经验的片段提取到一个单独的项目,并导入它。如果是,你怎么做 只需从raw.githubusercontent.com卷曲一个文件?因为这就

我现在在golang创建越来越多的小型一次性项目,但我看到许多makefile任务实际上是跨项目复制和粘贴的。例如,在每个项目中,我都有一个:

${APP_NAME}: $(SOURCES)
    go get ./...
    goimports -w $(SOURCES)
    go build -o ${APP_NAME}
我想知道,是否有人有经验的片段提取到一个单独的项目,并导入它。如果是,你怎么做

  • 只需从
    raw.githubusercontent.com
    卷曲一个文件?因为这就是我要做的,因为我看不到任何其他简单的方法

  • 我还考虑过使用git子模块,但对于一些文件来说,这似乎有点过头了


我找到了一个简单的解决方法:I
include
Makefile,它是我从开始的单片Makefile创建的

我将分割的Makefiles放在一个单独的git项目中,该项目只包含它们

我指的是来自根项目的那些makefile,我通过git子模块在本地拥有它们。更多的工作-是的,但它允许我在单独的项目中拥有琐碎的“根”Makefile和所有硬(经常重复)逻辑

我是如何做到这一点的:

  • 拆分生成文件项目:
  • 通过子模块利用上部项目的根生成文件:

许多开发人员将其编辑器设置为运行goimports/gofmt。没有必要
去获取。/…
,除非你正在做新的事情。如果将包含应用程序的目录命名为“${app_name}”,则只需执行
go build
。使用此配置,不需要makefile。我不同意。我还有很多其他的任务,上面的只是一个例子。gometalinter、go bindata等。问题仍然存在,尽管上面提到的一个特定示例可以通过一些编辑器设置来避免