Maven和JSF webapp结构,完全放置JSF资源

时间:2012-11-24 11:48:28

标签: jsf maven

我真的不了解Maven和JSF webapp的目录结构。

当我生成项目时,我有这样的结构:

src
|_ main
   |_ java
   |_ resources
   |_ webapp
      |_ WEB-INF 
         |_ web.xml
      |_ index.xhtml

我想要包含一些资源:

  • javascript文件
  • css文件
  • 图像
  • i18n files

我可以在src/main/resources内包含i18n文件,但不能包含在任何地方,我可以在src/main/webapp/resources内包含JS文件,CSS文件和图像,但不能在任何地方...

我没有在网上找到关于JSF和Maven的目录结构的非常明确的规则。

请问有什么规定?

由于

2 个答案:

答案 0 :(得分:26)

<h:outputStylesheet><h:outputScript><h:graphicImage>(因此,CSS / JS /图像)引用的JSF资源应该最终位于/resources文件夹中公共网站内容,/WEB-INF/META-INF文件夹也在这里。

因此,您必须将它们放入/src/main/webapp/resources

src
 `-- main
      |-- java
      |-- resources
      `-- webapp
           |-- resources
           |    |-- css
           |    |    `-- style.css
           |    |-- images
           |    |    `-- logo.png
           |    `-- js
           |         `-- script.js
           |-- WEB-INF 
           |    `-- web.xml
           `-- index.xhtml

那些i18n文件(我假设你在技术上意味着资源包文件)最终最终会在/WEB-INF/classes的包中。 /src/main/resources用于非类文件,这些文件应该以{{1​​}}结尾,你应该将它们放在那里。假设捆绑基本名称为/WEB-INF/classes,请按以下方式提供:

com.example.i18n.text

另见:

答案 1 :(得分:1)

css / images等的最佳位置是src / main / webapp / images或src / main / webapp / css /等。目前没有位置src / main / webapp / resources。 src / main / resources文件夹用于资源(属性文件等),这些资源应该被过滤或应该位于WEB-INF / classes文件夹中。所以通常你不喜欢过滤图像和CSS文件。查看maven-war-plugin文档,其中提供了一些提示和配置示例。 最好的方法似乎是把所有内容放到src / main / webapp / FOLDER中,不管怎么说都不应该过滤掉,否则你应该把它放到src/main/resources中你可以控制过滤和替换