我有两个共享大量代码的JSF项目 - java类,xhtml文件,标记库,css和javascript文件等。我的开发环境/平台主要包括Eclipse,Ant,Perforce和Tomcat。
是否有人找到了创建和整理共享代码的方法,以便公共代码可以保留在一组文件夹中?
Eclipse可以轻松地为java源添加外部文件夹,但不能满足其他文件类型。我很欣赏任何想法。
答案 0 :(得分:59)
在Eclipse中创建一个新的“Java项目”。将其作为另一个项目添加到主动态Web项目的 Deployment Assembly 属性中。这样,它将自动最终作为Web项目构建的/WEB-INF/lib
中的JAR。从较新的Eclipse版本开始,您还可以将项目创建为“Web Fragment Project”。这样,部署程序集步骤将自动完成。
将所有这些共享的JSF2 / Facelets资源文件放在Java项目的/META-INF/resources
文件夹中。只需将其视为主Web项目的WebContent/resources
即可。 Tagfiles可以保存在自己的/META-INF/tags
文件夹中。
E.g。
CommonWebProject
|-- META-INF
| |-- resources
| | `-- common
| | |-- css
| | | `-- some.css
| | |-- js
| | | `-- some.js
| | |-- images
| | | `-- some.png
| | |-- components
| | | `-- somecomposite.xhtml
| | `-- sometemplate.xhtml
| |-- tags
| | `-- sometag.xhtml
| |-- faces-config.xml
| |-- some.taglib.xml
| |-- web-fragment.xml
| `-- MANIFEST.MF
:
与
<h:outputStylesheet library="common" name="css/some.css" />
<h:outputScript library="common" name="js/some.js" />
<h:graphicImage library="common" name="images/some.png" />
<common:somecomposite />
<common:sometag />
<ui:include src="/common/sometemplate.xhtml" />
...
如果您还要触发JSF2注释扫描程序,以便您也可以在该项目中放置@ManagedBean
,@FacesValidator
,@FacesConverter
和consorts,请创建兼容JSF2的{{ 1}}文件(它甚至可以保持为空)。
/META-INF/faces-config.xml
就是这样。