今天为了学习 怎样使用 Groovy 写 Groovy 的測试代码, 所以到 http://groovy.codehaus.org/Download 下载了 Groovy 2.3.8 的源码包.

Groovy 是採用 Gradle 作为 构建工具的. 先看我本地的 Gradle 的相关环境:

>gradle -v

------------------------------------------------------------
Gradle 2.2
------------------------------------------------------------ Build time: 2014-11-10 13:31:44 UTC
Build number: none
Revision: aab8521f1fd9a3484cac18123a72bcfdeb7006ec Groovy: 2.3.6
Ant: Apache Ant(TM) version 1.9.3 compiled on December 23 2013
JVM: 1.8.0_25 (Oracle Corporation 25.25-b02)
OS: Windows 7 6.1 amd64

然后我在加压缩之后的源代码根文件夹下输入  gradle tasks  ,

gradle 開始从 jcenter 下载须要的 jar 包,

然后開始编译,

最后出现这个错误:

Detected development environment
Deployment environment set to Bintray FAILURE: Build failed with an exception. * Where:
Script 'H:\TDDownload\groovy-src-2.3.8\groovy-2.3.8\gradle\pomconfigurer.gradle' line: 10 * What went wrong:
A problem occurred evaluating script.
> Could not find property 'groovy' on configuration container. * Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. BUILD FAILED Total time: 5 mins 7.403 secs

我接着用 gradle tasks --info  命令再跑一遍, 还是出现以下的错误:

Detected development environment
Deployment environment set to Bintray FAILURE: Build failed with an exception. * Where:
Script 'H:\TDDownload\groovy-src-2.3.8\groovy-2.3.8\gradle\pomconfigurer.gradle' line: 10 * What went wrong:
A problem occurred evaluating script.
> Could not find property 'groovy' on configuration container. * Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output. BUILD FAILED Total time: 7.911 secs
Stopped 0 compiler daemon(s).
Received result DaemonCommandResult[type=CommandFailure, value=org.gradle.launcher.exec.ReportedException: org.gradle.internal.exceptions.LocationAwareException
: Script 'H:\TDDownload\groovy-src-2.3.8\groovy-2.3.8\gradle\pomconfigurer.gradle' line: 10
A problem occurred evaluating script.] from daemon DaemonInfo{pid=7252, address=[65f71eaa-6377-4a8a-9370-d90fced0f265 port:50883, addresses:[/127.0.0.1, /0:0:0:
0:0:0:0:1]], idle=false, context=DefaultDaemonContext[uid=581b3403-93ac-4a93-bcd9-d5374bbb9a86,javaHome=H:\ProgramFiles\Java\jdk1.8.0_25,daemonRegistryDir=C:\Us
ers\chenjo\.gradle\daemon,pid=7252,idleTimeout=120000,daemonOpts=-XX:MaxPermSize=196m,-XX:+CMSClassUnloadingEnabled,-XX:+CMSPermGenSweepingEnabled,-Xmx640m,-Dfi
le.encoding=GBK,-Duser.country=CN,-Duser.language=zh,-Duser.variant]}.

如何绕过这个错误呢?  难道是我的 Gradle 的版本号问题?

于是我打开文件  H:\TDDownload\groovy-src-2.3.8\groovy-2.3.8\README.adoc ,

发现里面说到:

To build everything using Gradle (the command below will download Gradle automatically, you do not need to download it first).

    ./gradlew clean dist

于是我就打开 命令行 窗体 到 源代码文件夹下,  键入:  gradlew clean dist

我发现这个命令会首先下载一个 gradle-1.12 -all 到本地

C:\Users\chenjo\.gradle\wrapper\dists\gradle-1.12-all

然后加压缩, 然后在以该版本号下载 jar 包 以及进行 编译, 汇总.... 尽管中间有一些警告, 或是下载 jar 包时网络受阻, 我就中断命令又一次运行几次, 最后 build 成功.

Applying Javadoc fix tool (see http://www.kb.cert.org/vuls/id/225657) into H:\TDDownload\groovy-src-2.3.8\groovy-2.3.8\target\alljavadoc
:doc
:distDoc
:distSrc
:groovydoc
:javadoc
Applying Javadoc fix tool (see http://www.kb.cert.org/vuls/id/225657) into H:\TDDownload\groovy-src-2.3.8\groovy-2.3.8\target\docs\javadoc
:syncDoc
:dist BUILD SUCCESSFUL Total time: 18 mins 2.66 secs

然后我看到 生成的 target 目录 竟然有 500 多 M 字节.

在 项目文件夹\target\distributions\ 下, 有例如以下生成的公布文件:

groovy-binary-2.3.8.zip

groovy-docs-2.3.8.zip

groovy-sdk-2.3.8.zip

groovy-src-2.3.8.zip

亲自己主动手从源代码 构建 Groovy 2.3.8 公布包的更多相关文章

  1. ActiveMQ从源代码构建

    众多开源项目.我们一般都是直接拿过来用之而后快. 只是我们也应该知道这些项目是怎样从源代码构建而来的. 既然代码是写出来的,就不能避免有BUG存在,话说没有完美的软件,也没有无漏洞的程序. 事实上从源 ...

  2. 从源代码构建 Go 开发环境

    从源代码构建 Go 开发环境 Go 1.5 之前的版本 安装C 语言开发环境 在Go 1.5 之前的版本(比如 1.3.1.4),都会部分的依赖 C 语言的工具链,所以如果你有C 语言的开发环境,就可 ...

  3. 24 使用Maven 或 Gradle构建groovy

    1       使用Maven 或 Gradle构建groovy 1.1  使用maven构建groovy pom.xml file. <dependencies>     ... oth ...

  4. cocos2d-x 手游源代码站

    尊重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/37829061 1.魔幻方块 链接:魔幻方块源代码 ...

  5. jquery autocomplete文本自己主动补全

    文本自己主动补全功能确实非常有用. 先看下简单的效果:(样式不咋会写) 以下介绍几种: 1:jqery-actocomplete.js 这个网上有个写好的实例,上面挺具体的,能够下来执行下就清楚了就不 ...

  6. 《iOS开发全然上手——使用iOS 7和Xcode 5开发移动与平板应用》之Objective-C新手训练营

    编写Hello World应用程序通常被觉得,是学习不论什么编程语言的第一步.在这一章,你将创建iOS版的Hello World应用程序作为起步,高速了解Xcode这个开发iOS应用程序的主要工具. ...

  7. 【C语言探险】 第四课的第二部分:串

    内容简单介绍 1.课程大纲 2.第二部分第四课: 字符串 3.第二部分第五课预告: 预处理 课程大纲 我们的课程分为四大部分,每个部分结束后都会有练习题,并会发布答案.还会带大家用C语言编写三个游戏. ...

  8. 使用jprobe建设镜面层叠的原则和见解

    忽然想起的回忆,那是2007上周五在冬季,我看我的老湿调试Linux堆IP层,只看到他改变路由查找的逻辑,然后直接make install上的立竿见影的效果有点,我只知道,,这种逻辑必须再次更改编译内 ...

  9. 高速入门:十分钟学会Python

    初试牛刀 如果你希望学习Python这门语言.却苦于找不到一个简短而全面的新手教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手冊(Cheat ...

随机推荐

  1. 学习JavaEE,对比ASP.NET顿悟出一点点道理

    图一 图二 配套说明: 步骤一.客户端向web服务器(tomcat)发送http请求 步骤二.tomcat接收到请求后,将请求信息交给servlet容器,由servlet容器对请求进行封装(HttpS ...

  2. spring---aop(2)---Spring AOP的JDK动态代理

    写在前面 spring 事务是springAOP 的一个实现.我们以分析spring的事务,来分析spring的AOP实现. 基本知识 如果目标方法被spring的事务声明,则执行该目标方法的对象就会 ...

  3. Android Studio2.3.3卡在Building 'xxx' Gradle project info的解决方法

    Android Studio版本:V2.3.3 操作系统环境:Ubuntu14.04  64bit 新安装好Android Studio后,在创建新的项目时或者在导入他人的项目代码时,Android ...

  4. 华为S5300系列交换机V100R005SPH021升级补丁

    S23_33_53-V100R005SPH021.pat 附件: 链接:https://pan.baidu.com/s/1xaEZa8hn8psHSQXrk2d9yA  密码:9b6o

  5. 21扩展IEnumerable<T>泛型接口自定义LINQ的扩展方法

    LINQ方法实际上是对IEnumerable<TSource>的扩展,如图:   本篇自定义一个MyWhere方法,达到与Where相同的效果.     使用LINQ自带的Where方法 ...

  6. mysql 主从复制原理(转)

    本文转自https://blog.csdn.net/php_younger/article/details/59673879 mysql 主从复制原理 主从形式   mysql主从复制 灵活 一主一从 ...

  7. 别忽视UIImage中的方向属性, imageOrientation-转

    转 : 别忽视UIImage中的方向属性, imageOrientation

  8. 相比xib 使用代码编排view 的一个明显的好处就是可以更好地重复使用已有代码,减少代码冗余。

    相比xib 使用代码编排view 的一个明显的好处就是可以更好地重复使用已有代码,减少代码冗余.

  9. Unity3D中的弹道和移动目标提前量计算

    弹道计算是游戏里常见的问题,其中关于击中移动目标的自动计算提前量的话题,看似简单,其实还是挺复杂的数学.网上这方面的资料还真不多,而且都是写的含含糊糊.抽空总结一下自己的方法. 讨论的前提是,假设目标 ...

  10. Tomcat启动就执行特定方法

    import java.util.Timer; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContex ...