0

我正在开发嵌入式 Jetty + Wicket 应用程序,并且正在使用 buildr。现在,Buildr 不包括 jar 中的 HTML 文件(在主源文件夹中,在我的 *.java 文件旁边)。我如何告诉 buildr 将它们包含在编译/打包步骤中?

感谢您的建议,我想我已经接近了。也许我应该问的问题是如何将 .HTML 文件放到 target/classes/ 子目录中的正确位置?我已经确认,如果我可以在 target/classes 文件夹中获取 .html 文件,则 package(:jar) 会将它们存档。我要开始看那个了。

4

3 回答 3

1

感谢您的建议,我想我已经接近了。也许我应该问的问题是如何将 .HTML 文件放到 target/classes/ 子目录中的正确位置?我已经确认,如果我可以在 target/classes 文件夹中获取 .html 文件,则 package(:jar) 会将它们存档。我要开始看那个了。

听起来您想要做的是将java源路径视为资源路径。以下是在一个已经相当大的项目中转换为 buildr 的方法:

# Uses before_define to default all projects to including their resources from
# src/main/java instead of src/main/resources (& similar for test) if
# those source directories exist
module InlineResources
  include Buildr::Extension

  before_define do |p|
    [
      [p.resources, p._("src/main/java")],
      [p.test.resources, p._("src/test/java")]
    ].each do |res, path|
      if File.exist?(path)
        res.from(path).exclude("**/*.java")
      end
    end
  end
end

class Buildr::Project
  include InlineResources
end

这会将 *.html 文件放入其中target/resources并从那里将它们添加到包中。

于 2011-04-17T13:51:20.953 回答
0

Buildr 在 src/main/webapp 文件夹中获取战争文件内容。您需要将 html 文件保存在其中。

于 2011-04-13T01:11:09.223 回答
0

这取决于他们需要去的 WAR 中的哪个位置,但通常您可以执行以下操作:

package(:war).include(_(:source, :main, :java, "**/*.html"))

:war包是包的特化,:jar:zip包的特化,因此您也可以使用任何记录在案的方法for :jaror :zipon a :war

于 2011-04-13T01:46:51.183 回答