Golang Go语言中撸了一个构建工具
去年 11 月的时候开始接触 Golang ,实在不适应 Golang 的全局 GOPATH ,于是自己撸了一个 Gradle 的 Golang 插件,提供完整的包管理、自动化构建支持。项目在这里。
它可以:
- 完美支持多平台,所有的测试都在 Mac/Linux/Windows 上通过
- 无需预先安装 Go ,并且允许多 Go 版本共存,换句话说,这货会帮你下 Go
- 无需设置 GOPATH ,依赖包的管理都是项目级的
- 支持导入 glide/glock/godep/gom/gopm/govendor/gvt/gbvendor/trash
- 支持传递性依赖管理、依赖版本声明、语义化版本、依赖锁定、扁平化
- 支持构建、测试、单个测试、交叉编译
最大的亮点在于不需要记go get/build/install/...
等各种命令,一个命令搞定:./gradlew build
。
它计划用纯 Java 实现 Git/Mecurial/Svn/Bazaar ,避免用户的电脑上安装一堆 VCS 工具,不过当前只实现了 Git 。
另外它还给中国开发者提供了一个鬼畜功能。。。fuckGfw
选项。。当这个选项打开的时候, Golang 安装包的下载地址切换到 golangtc 的源。另外还计划开发 SS 代理支持。
欢迎试用和拍砖!
Golang Go语言中撸了一个构建工具
更多关于Golang Go语言中撸了一个构建工具的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
这不是还得装个 gradle 嘛…做个可执行程序发布最好了
更多关于Golang Go语言中撸了一个构建工具的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
希望能是一个 pure go 实现
不用的…只要 jdk 。。。。 gradle 有 gradlew 脚本的。。
fuckGfw 哈哈哈 从一些被墙的源 go get 是挺不方便的 还不支持 socks 。
我看了一下, https 的 shadowsocks 支持很容易,我今晚就会做掉
实现 IDE 支持才是这个插件真正的起步。。。
有计划支持 idea 和 vscode 。。但是问题在于它们有些限制,正在跟作者沟通解决
http proxy 是可以的 窝现在也在用…
居然是 java 的,看着就大……
Shadowsocks 代理已经支持。。。
gogland 足够强大
话说下载地址在哪?
按照文档来 https://github.com/blindpirate/gogradle/blob/master/README_CN.md
1.首先安装 jdk8
2.clone <a target="_blank" href="https://github.com/blindpirate/gogradle.git" rel="nofollow noopener">https://github.com/blindpirate/gogradle.git</a>
到本地
3.拷贝该项目中的gradle
目录 /gradlew
/gradlew.bat
到欲构建的目录中
4.按照文档,新建一个 build.gradle 文件
5../gradlew build
非常赞,但是看到装 java8 就没什么好感了,anyway,赞一个
gradle 很方便啊!支持
直接 Makefile 不就好了?现在年轻人都不会用这些基础组件了?
Makefile 不能锁包
go vendor 知道么
go vendor 是下载下来的啊,包会不同步,如果不把它放进仓库里。
呃,你好好看看 go vendor 的说明,仅仅是增加了搜索路径。
而依赖的升级、变更都属于管理工具的事
所以是可以用 git submodule 代替的,也有对应的管理工具 https://github.com/kovetskiy/manul
做的就是管理工具啊。
https://github.com/golang/go/wiki/PackageManagementTools 这个页面上基本上所有的管理工具管理的依赖,包括 submodule 都已经被支持,即可以自动解析它们所管理的仓库的传递性依赖。 submodule 的支持是昨天晚上完成的。
针对您提到的在Golang中开发了一个构建工具,这是一项非常有价值的尝试。构建工具在Golang项目中扮演着至关重要的角色,它们能够自动化编译、测试和部署过程,显著提升开发效率。
在Golang中,构建工具通常依赖于其内置的工具链,如go build
、go test
和go install
等命令,这些工具提供了基本的构建、测试和安装功能。此外,为了处理更复杂的构建需求,开发者通常会结合使用Makefile或第三方构建工具,如Mage、Task等。
您开发的构建工具可能具备以下一些特性:
- 自动化:能够自动化执行编译、测试和部署等构建步骤。
- 灵活性:支持自定义构建步骤和依赖关系,以适应不同项目的需求。
- 跨平台:能够在不同的操作系统和架构上执行构建任务。
为了进一步提升构建工具的价值,您可以考虑以下方面:
- 集成测试框架:如
go test
,以确保代码质量。 - 支持依赖管理:如通过
go mod
处理项目依赖。 - 提供文档和示例:帮助其他开发者更好地理解和使用您的构建工具。
总之,您的构建工具将为Golang项目带来便利和效率,期待它在未来能够为更多的开发者所使用。