我真的不了解Maven和JSF webapp的目录结构。
当我生成项目时,我有这样的结构:
src
|_ main
|_ java
|_ resources
|_ webapp
|_ WEB-INF
|_ web.xml
|_ index.xhtml
我想要包含一些资源:
我可以在src/main/resources
内包含i18n文件,但不能包含在任何地方,我可以在src/main/webapp/resources
内包含JS文件,CSS文件和图像,但不能在任何地方...
我没有在网上找到关于JSF和Maven的目录结构的非常明确的规则。
请问有什么规定?
由于
答案 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中你可以控制过滤和替换