1

我目前正在使用 IntelliJ IDEA 来构建我的项目,但我想摆脱它以打破对这个特定 IDE 的依赖。 Buildr看起来是一个不错的选择,因为 1) 它很简单,并且 2) 我已经了解 Ruby。

我的 IDEA 项目,它是一个 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 : Missing artifact identifier for {:group=>"my_library"}

如何在同一个构建文件中引用我之前在另一个项目中创建的 JAR?

4

1 回答 1

2

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

package(:jar).include( project('my_library').package(:jar), :as => "lib/my_library.jar" )
于 2012-09-19T00:25:06.653 回答