阅读更多

5顶
4踩

编程语言

原创新闻 使用Raven取代Ant来Build Java项目

2008-09-14 08:54 by 副主编 QQbyte 评论(13) 有8100人浏览
Ant作为常用Java项目build工具经常受到争议,很多其他的支持XML所缺乏的更多的表达范式的build工具进入开发者的视野。自动化专家Paul Duvall同学推荐了使用Raven(乌鸦)来Build Java项目,Raven是一个由Ruby写的build平台,采用简单的build-centric Domain Specific Language(中心build领域特定语言DSL)提供所有编程语言的强大功能。Raven License : Apache v2.0。如果对Ruby有兴趣同时又希望智能化build java项目,可以看看Raven。



Paul写到:

我有一个现存的java项目,多年来我一直小心的维护它的ant build脚本,但是我发现ant的XML语法繁琐而且有很多限制,有时我不得不使用Groovy来写一些客户任务或者嵌入逻辑进入Ant的脚本,我渴望一种更高级别提供更大灵活性的build工具。

他的文章讨论了一些常用的Java任务,比如javac,javadoc,war,和junit。Raven替换了基于XML build系统,提供了Ruby以及客户DSLs的表达式,对于build java项目具有更强大的易用性和灵活性。

Raven的平台架构和逻辑:



比如对于这样一个java项目:



使用Raven创建classpath:

require 'raven'
require 'rake'

dependency 'deps' do | task |
  task.libs = Dir.glob('lib/**/*.*')  
end 


使用Raven来编译:

javac 'compile' => 'deps' do |task|
  task.build_path << "src"
end


创建 WAR 文件来部署 Web 容器:

war 'brewery.war' => ['clean', 'compile', 'java-doc'] do |task|
  task.webapp_dir = 'src/web'
end


简单吧? 访问Raven主页:http://raven.rubyforge.org/

推荐阅读Paul Duvall同学的文章:Automation for the people: Build Java projects with Raven
5
4
评论 共 13 条 请登录后发表评论
13 楼 spp_1987 2010-05-31 16:29
晕头转向
12 楼 Sam1860 2008-09-15 21:13
感觉java的build工具只有ant是实用的,其他的build工具都是把build复杂化
11 楼 john813 2008-09-15 18:29
搞java的为什么不用maven ?
10 楼 qichunren 2008-09-15 15:58
太多了吧,有些应不过来
9 楼 just4you 2008-09-15 11:43
有了ant,学个maven还没学会呢,又出来一个,都能好到哪去呢?
8 楼 rainytooo 2008-09-15 09:36
我想 就没有这个必要了吧
7 楼 yupengfeiwangcui 2008-09-14 23:02
为了学语言我们已经很累了,还搞这么多工具。
只要能完成任务,一种就够了,也习惯了。
6 楼 totong 2008-09-14 19:32
没有这个必要吧,能用东西已经够多了
5 楼 allenny 2008-09-14 16:51
文章并没有告诉我们其与Ant相比有什么过人之处
4 楼 saharabear 2008-09-14 15:27
实在想不出,ant,make, maven,gant以外,是否真的还需要另一种Build工具。

公司所有项目都是Ant,运行良好,个人开源项目用Maven,自己的网站用的Gant,在Unix下就用Make。自己写些插件,似乎没必要再考虑另外一种工具。
3 楼 rockjava 2008-09-14 13:04
引用
代替ant ?我还要学习ruby?

不解?????
2 楼 hantsy 2008-09-14 10:55
代替ant ?我还要学习ruby?
1 楼 JohnnyJian 2008-09-14 09:29
干嘛用Raven,用Gant不就好了

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • VUE时间戳转农历js文件

    用户可下载当前文件之后,可以获取时间戳数据传进JS文件中的函数,函数处理完时间戳之后会返回当前对应的事件农历日期(中文形式),VUE时间戳转农历js文件

  • golang学习笔记--日期函数

    要使用日期相关的函数需要引入time包,Now()函数会返回当前本地时间,返回的是一个time.Time类型的结构体,里面内置了很多方法可以使用。Millisecond = 1000 * Microsecond //毫秒。Second = 1000 * Millisecond //秒。Microsecond = 1000 * Nanosecond //微妙。1970年1月1日 0点0分0秒。

  • Qt日历转换:公历转农历

    公历转农历,转化年限:1901-2099。

  • qt实现公历转农历,C++亦可用

    2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt; ...

  • Qt/C++实现阳历转农历功能

    Qt/C++实现阳历转农历功能

  • 带公历和农历相互转换的生日选择器

    网上的日期选择器很多,但是只有公历的;万年历也很多,但没有用于选择生日或日期的。有的人只记得自己生日的农历日期,这种情况下选择生日就有点牵强,本人最近在做的一个项目中需要用户输入自己的生日,既可选择公历,也可选择农历,经过研究做出了这种生日选择器,可以任意切换公历和农历,公历农历相互转换的算法90%是本人原创,正确性可与其他万年历比较,大多数万年历都使用存储1900-2050或1900-2100农历数据,实现150或200年的“万年历”,本人的转换方法可转换公元前102年到公元9999年的公历和家历,才真正称得上万年历!

  • QT实现农历转换(C++)

    采用Qt(5.0以上)实现公历与农历的转换,可以计算得到1900-2100年间的所有二十四节气、干支纪年月日八字信息、传统农历节日信息,实测通过,项目中使用!!

  • poj 1008

    Maya Calendar Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 56887   Accepted: 17567 Description During his last sabbatical, professor M. A. Ya made a surpris

  • 阴阳历互相转换方法

    #region 阴历转阳历 /// &lt;summary&gt; /// 获取指定年份春节当日(正月初一)的阳历日期 /// &lt;/summary&gt; /// &lt;param name="year"&gt;指定的年份&lt;/param&gt; private Date...

  • 时间转换(公、农历、UNIX时间戳)

    用C#写的一个当前时间的公历,农历,UNIX时间戳转换,精确到毫秒。是硬件UNIX时间戳调试的好帮手。 本工具有更新了,请选用新的版本——unix时间戳调试工具(更新),新版本可以拷贝,可以输入UNIX时间戳,转换成当前的时间。

  • 原生js实现公历转农历

    原生js实现公历转农历 参考文献: [1] 1900年至2100年公历、农历互转Js代码

  • 公历转农历的程序(代码转载于网络)

    /*------------农历转换函数-----------*/ void Window::get_chinese_calendar(QDate english_calendar, QString &outLunarDay, QString &outLunarYear) {     int currentYear = 0, currentMonth = 0, currentDay = 0;

  • vue element || vant 日历加农历、节日、节气,周六日改变颜色

    前言 vue项目里产品要求实现日历加农历、节日、节气,周六日改变颜色 ,文章里会举两个例子(element and vant ) ,仔细看完就明白是怎么回事了 一、vant日历 UI图如下 vant原图如下 官方并 无 农历显示的介绍 日历区域可上下滑动, 故左右控制月份按钮去掉 ,且以平铺的形式展示 开始加元素 html &lt;van-calendar ref="calendars" :poppable="false" :default-date="defaultDat

  • java农历

    import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class Lunar {    private int year;    private int month;    private int day; 

  • C++阳历转阴历算法及实现

    关于日历的一些基本常识: 阳历:每年12个月,1、3、5、7、8、10、12月都为31天;2月份平年28天,闰年((year%400==0)||(year%4==0&&year%100!=0))为29天,其余月份为30天。 闰年(year):(year%400==0)||(year%4==0&&year%100!=0) 据此可知,某一天是星期几可通过下面的函数返回值获取: 阴历,却

  • 阴历阳历的相互转换(支持1900~2100年)

    背景 最近做到一个项目, 需要阴历与阳历的相互转换, 网上找了很多资料, 发现很多都是不准的, 但是给了我参考价值 算法 借用百度百科的 : 阳历 太阳历又称为阳历,是以地球绕太阳公转的运动周期为基础而制定的历法。太阳历的历年近似等于回归年,一年12个月,这个“月”,实际上与朔望月无关。阳历的月份、日期都与太阳在黄道上的位置较好地符合,根...

  • JS工具库moment —— 实现日历

    moment moment是一个js工具库,这个库中封装的是日期时间的方法,功能很全面。可以去moment官网看看,它的中文文档介绍的也很详细,主要是看一下方法的使用。附上官网地址:moment.js官网 日历案例 模仿的是win10自带的日历,但是功能没有很全面,简单的实现了上下翻更新的效果,选择年份的功能没有实现呢。 简单说下,日历的逻辑问题。 从当前月出发,必须直到当前月的天数,必须知道当前月第一天是星期几。 只有知道了天数和第一天是星期几,才能知道第一天的位置在哪,要显示几天。核心点就是解决这两点

Global site tag (gtag.js) - Google Analytics