V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
blindpirate
V2EX  ›  Go 编程语言

撸了一个 Golang 的构建工具

  •  1
     
  •   blindpirate ·
    blindpirate · 2017-02-12 16:37:20 +08:00 · 1169 次点击
    这是一个创建于 2629 天前的主题,其中的信息可能已经有所发展或是发生改变。

    去年 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 代理支持。

    欢迎试用和拍砖!

    22 条回复    2017-02-14 15:57:01 +08:00
    janxin
        1
    janxin  
       2017-02-12 16:39:20 +08:00
    这不是还得装个 gradle 嘛...做个可执行程序发布最好了
    Septembers
        2
    Septembers  
       2017-02-12 16:40:46 +08:00 via iPhone
    希望能是一个 pure go 实现
    blindpirate
        3
    blindpirate  
    OP
       2017-02-12 16:42:01 +08:00
    @janxin 不用的…只要 jdk 。。。。 gradle 有 gradlew 脚本的。。
    scnace
        4
    scnace  
       2017-02-12 16:48:16 +08:00 via Android
    fuckGfw 哈哈哈 从一些被墙的源 go get 是挺不方便的 还不支持 socks 。
    blindpirate
        5
    blindpirate  
    OP
       2017-02-12 17:15:03 +08:00
    @scnace 我看了一下, https 的 shadowsocks 支持很容易,我今晚就会做掉
    plqws
        6
    plqws  
       2017-02-12 17:37:36 +08:00
    实现 IDE 支持才是这个插件真正的起步。。。
    blindpirate
        7
    blindpirate  
    OP
       2017-02-12 17:40:05 +08:00
    @plqws 有计划支持 idea 和 vscode 。。但是问题在于它们有些限制,正在跟作者沟通解决
    scnace
        8
    scnace  
       2017-02-12 19:31:40 +08:00 via Android
    @blindpirate http proxy 是可以的 窝现在也在用…
    loading
        9
    loading  
       2017-02-12 19:34:02 +08:00 via Android
    居然是 java 的,看着就大……
    blindpirate
        10
    blindpirate  
    OP
       2017-02-12 21:25:55 +08:00
    @scnace Shadowsocks 代理已经支持。。。
    torbrowserbridge
        11
    torbrowserbridge  
       2017-02-12 22:06:00 +08:00 via iPhone
    gogland 足够强大
    arden
        12
    arden  
       2017-02-13 03:26:50 +08:00
    话说下载地址在哪?
    blindpirate
        13
    blindpirate  
    OP
       2017-02-13 09:25:12 +08:00
    @arden 按照文档来 https://github.com/blindpirate/gogradle/blob/master/README_CN.md

    1.首先安装 jdk8
    2.`clone https://github.com/blindpirate/gogradle.git`到本地
    3.拷贝该项目中的`gradle`目录 /`gradlew`/`gradlew.bat`到欲构建的目录中
    4.按照文档,新建一个 build.gradle 文件
    5.`./gradlew build`
    penjianfeng
        14
    penjianfeng  
       2017-02-13 10:22:57 +08:00   ❤️ 1
    非常赞,但是看到装 java8 就没什么好感了,anyway,赞一个
    lujiajing1126
        15
    lujiajing1126  
       2017-02-13 11:34:44 +08:00
    gradle 很方便啊!支持
    mengzhuo
        16
    mengzhuo  
       2017-02-13 11:52:03 +08:00 via iPhone
    直接 Makefile 不就好了?现在年轻人都不会用这些基础组件了?
    ChristopherWu
        17
    ChristopherWu  
       2017-02-13 13:06:34 +08:00
    @mengzhuo Makefile 不能锁包
    mengzhuo
        18
    mengzhuo  
       2017-02-13 21:35:17 +08:00 via iPhone
    @ChristopherWu go vendor 知道么
    ChristopherWu
        19
    ChristopherWu  
       2017-02-13 23:31:34 +08:00
    @mengzhuo go vendor 是下载下来的啊,包会不同步,如果不把它放进仓库里。
    mengzhuo
        20
    mengzhuo  
       2017-02-14 09:29:53 +08:00
    @ChristopherWu 呃,你好好看看 go vendor 的说明,仅仅是增加了搜索路径。
    而依赖的升级、变更都属于管理工具的事
    所以是可以用 git submodule 代替的,也有对应的管理工具 https://github.com/kovetskiy/manul
    blindpirate
        21
    blindpirate  
    OP
       2017-02-14 15:54:41 +08:00
    @mengzhuo 做的就是管理工具啊。
    blindpirate
        22
    blindpirate  
    OP
       2017-02-14 15:57:01 +08:00
    @mengzhuo https://github.com/golang/go/wiki/PackageManagementTools 这个页面上基本上所有的管理工具管理的依赖,包括 submodule 都已经被支持,即可以自动解析它们所管理的仓库的传递性依赖。 submodule 的支持是昨天晚上完成的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1269 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 23:28 · PVG 07:28 · LAX 16:28 · JFK 19:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.