21

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

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

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

我想包括一些资源:

  • 文件
  • css 文件
  • 图片
  • i18n 文件

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

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

请问有什么规则吗?

谢谢

4

2 回答 2

31

和(因此<h:outputStylesheet>, CSS/JS/images)要引用的 JSF 资源应该最终位于公共 web 内容的文件夹中,其中和文件夹也在那里。<h:outputScript><h:graphicImage>/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非类文件/WEB-INF/classes,您应该将它们放在那里。假设捆绑包基本名称为com.example.i18n.text,请按以下方式提供它们:

src
 `-- main
      |-- java
      |-- resources
      |    `-- com
      |         `-- example
      |              `-- i18n
      |                   |-- text.properties
      |                   |-- text_en.properties
      |                   |-- text_es.properties
      |                   `-- text_nl.properties
      :                   

也可以看看:

于 2012-11-24T12:27:27.357 回答
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中,您可以控制过滤和替换

于 2012-11-24T12:17:25.927 回答