由别的网站发现一个信息,怕丢了,留作mark吧:http://www.iteye.com/news/3514
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
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
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
war 'brewery.war' => ['clean', 'compile', 'java-doc'] do |task|
task.webapp_dir = 'src/web'
end
简单吧? 访问Raven主页: http://raven.rubyforge.org/