2012-09-18 50 views
1

我目前使用IntelliJ IDEA来构建我的项目,但我想从它移开来打破对这个特定IDE的依赖。 Buildr看起来像一个不错的选择,因为1)它很简单,2)我已经知道Ruby。我该如何引用在同一个Buildr构建文件中构建的JAR?

我的想法的项目,这是一个Java库,目前看起来是这样的:

/ 
    /src/... 
    /sample_applications/ 

我可以这样与目标建立自己的库作为JAR没有问题:

define 'my_library' do 
    project.version = '0.0.1' 
    package(:jar) 
end 

但我想提供示例应用程序的构建目标 - 这取决于my_library - 使用相同的构建文件。如果我创建像这样的另一个目标:

sample_layout = Layout.new 
sample_layout[:source, :main, :scala] = 'sample_programs/simple_program.scala' 
define 'simple_program', :layout => sample_layout do 
    project.version = '0.0.1' 
    package(:jar) 
end 

simple_program-0.0.1.jar编译就好了,但不包括my_library JAR。如果我包括它通过修改上述定义:

define 'simple_program', :layout => sample_layout do 
    project.version = '0.0.1' 
    package(:jar).path("lib").tap do |p| 
    p.include artifact('my_library').to_s 
    end 
end 

然后我得到这样的错误: RuntimeError:{:组=>“my_library”}缺失工件标识符

如何可以指我之前在另一个项目中使用的JAR是否在同一个构建文件中?

回答

2

这是一个简单的问题,你只需要告诉Buildr该包任务需要从其他项目建设的jar:

package(:jar).include(project('my_library').package(:jar), :as => "lib/my_library.jar") 
相关问题