/buildr_sample

first example for buildr

Primary LanguageJava

使用Apache Buildr 构建你的 java 程序

Gradle 和 Buildr 都是java 构建系统工具类似于Ant ,Maven . 而且作为后起之秀更加优秀简洁,这两种构建工具都是基于脚本语言,Gradle 使用Groovy 而Build则使用ruby. 目前Buildr是Apache基金会孵化的第一个ruby项目。作为ruby fans 这里介绍一下 Buildr基本使用方法。

安装 Buildr

官方已经提供了非常详细的安装Buildr 文档,这里就不再叙述。在MacOsX下直接下载运行使用官方提供的安装脚本即可。

创建buildfile文件,编译打包

进入的项目的根目录,创建一个名字叫做"buildfile" 的文件. 文件内容如下:

define 'buildr_sample'

执行 buildr compile 方法buildr将自动分析代码的依赖关系进行编译

cd buildr-sample	
buildr compile

输出如下:

Compiling buildr-sample
Completed in 0.017s

我们看到除了终端有输出信息外没有任何变化 “buildr-sample/src/com/examplecode/buildr_sample/HelloBuildr.java ” 并没有被编译. 原来按照buildr的规范只会搜索" src/main/java/ " 目录下面的源码 。 我们可以通过增加下面的声明告诉buildr到src目录下搜索java源码

project_layout = Layout.new
project_layout[:source,:main,:java] = 'src'

define 'buildr-sample', :layout => project_layout do
          project.version = '0.1.0'
          package :jar
end

执行下面的命令可以生成 .jar 文件

 buildr package

编译和打包会在当前项目的根目录生成 target目录存放编译打包的结果,执行 buildr clean 命令会删除target用于清除编译结果


buildr clean

遇到的问题

由于buildr在编译的时候会调用ant 所以在第一次编译的时候会安装依赖的ant包(buildr 使用Rake实现Task依赖管理,但是ruby Rake不知道如何构建java. 但我们也没有必要重新实现所有的Task,只要调用ant现成的接口即可")。在我第一次编译java文件的时候出现下面的错误信息.

RuntimeError : Unable to download org.apache.ant:ant:jar:1.8.3. No remote repositories defined. 

这时候我们需要手工指定在构建文件中手工指定依赖仓库的地址。

repositories.remote << 'http://repo1.maven.org/maven2'
project_layout = Layout.new
project_layout[:source,:main,:java] = 'src'

define 'buildr-sample', :layout => project_layout do
          project.version = '0.1.0'
          package :jar
end

参考资料

http://buildr.apache.org/quick_start.html http://stackoverflow.com/questions/13781123/buildr-failing-with-unable-to-download-ant/13791000#13791000