2012-09-18 81 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") 
相關問題