2012-12-08 107 views
2

当试图建立这个项目:Buildr与失败“无法下载蚂蚁”

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

define 'hausaufgaben', :layout => project_layout do 
    project.version = '1.0' 
    package :jar 
end 

我得到这个错误:

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

从这个消息,我推测,buildr使用Ant内部(奇怪的是,我以为它使用Rake来构建)。 Quickstart没有提到这一点。更令人讨厌的是,我已经有了ant(1.8.2而不是1.8.3,但不应该产生如此巨大的差异),并且奇怪的是,只要buildr没有找到任何java文件,就没有抱怨(通过将布局保留为默认值进行测试)。

现在回到实际问题:我的是否有添加一个存储库,其中buildr可以找到蚂蚁,否则我可以这样做吗?

备案:我安装了搭建程序jruby -S gem install buildr并运行它与jruby -S buildr package

回答

2

Buildr使用Rake来完成任务依赖性评估和执行。但是,Rake并不了解如何专门构建Java项目。 Buildr使用ant任务来实现一些自己的任务,而不是重新编写它在ruby中支持的每个任务。 (一个我能想到的就是运行JUnit测试;我确信还有其他测试。)所以,Buildr需要Ant。

您可以添加适当的远程存储库,也可以确保正确版本的ant jar位于每台将使用构建文件的计算机上的m2缓存中。对于错误消息中的工件,预期的路径将为$HOME/.m2/repository/org/apache/ant/ant/1.8.3/ant-1.8.3.jar

请注意,ant可能不是buildr将尝试下载的唯一依赖项。如果您不想定义远程存储库,则必须为每个依赖项执行此手动解析。

(请注意,如果你运行在一个目录buildr没有构建文件,它会提供给您生成一个。它产生一个具有适当的远程仓库设置。)

+0

谢谢,我不知道创建buildfile的事情。是的,期待事情进入缓存真的不是我的选择(我正在写的这个人谁不知道甚至存在maven的人)。 – Cubic

5

至于瑞德idicated,Buildr在封面下使用Ant来实现它的一些任务,并在需要时尝试下载所需的库。

我通常在构建文件中注册一个远程存储库,以便构建知道从哪里下载库,如果它尚未缓存在本地。因此,请尝试将以下内容添加到您的构建的顶部。

repositories.remote << 'http://repo1.maven.org/maven2'