撸了一个 Golang 的构建工具 - V2EX
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 1559 次点击
    这是一个创建于 3167 天前的主题,其中的信息可能已经有所发展或是发生改变。

    去年 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
    td width="48" valign="top" align="center">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     Solana     5414 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 08:28 PVG 16:28 LAX 01:28 JFK 04:28
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86