如何使用buildr将html文件打包到jar / war中?

时间:2011-04-13 00:54:03

标签: wicket embedded-jetty buildr

我正在使用嵌入式Jetty + Wicket应用程序,我正在使用buildr。现在,Buildr不包括jar文件中的HTML文件(位于主源文件夹中,与我的* .java文件一起)。如何告诉buildr将它们包含在编译/包中?

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

3 个答案:

答案 0 :(得分:1)

  

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

这听起来像你想要做的,然后,将java源路径视为资源路径。这是how我在一个项目中这样做,我已经转换为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中,然后从那里将它们添加到包中。

答案 1 :(得分:0)

Buildr获取src / main / webapp文件夹中的内容以获取war文件内容。你需要将html文件保存在其中。

答案 2 :(得分:0)

这取决于他们需要在WAR中的位置,但通常你可以这样做:

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

:war包是:jar包的特化,它是:zip包的特化,因此您可以使用documented methods中的任意一个:jar包也可以在:zip上使用1}}或:war