我有两个共享大量代码的JSF项目-Java类,xhtml文件,标记库,css和javascript文件等。我的开发环境/平台主要包括Eclipse,Ant,Perforce和Tomcat。
有没有人找到一种创建和组织共享代码的方法,以便公用代码可以保留在一组文件夹中?
Eclipse使添加Java源的外部文件夹变得容易,但是在其他文件类型上却不足。我将不胜感激。
在Eclipse中创建一个新的“ Java项目”。将其作为另一个项目添加到主动态Web项目的Deployment Assembly属性。这样,它将自动/WEB-INF/lib以Web项目构建中的JAR结尾。由于Eclipse是较新的版本,因此您还可以将项目创建为“ Web Fragment Project”。这样,“部署组装”步骤将自动完成。
/WEB-INF/lib
将所有那些共享的JSF2 / Facelets资源文件放在/META-INF/resourcesJava项目的文件夹中。就像对待WebContent/resources主要的Web项目一样。标记文件可以只保存在自己的/META-INF/tags文件夹中。
JSF2 / Facelets
/META-INF/resourcesJava
WebContent/resources
/META-INF/tags
例如
CommonWebProject |-- META-INF | |-- resources | | `-- common | | |-- css | | | `-- some.css | | |-- js | | | `-- some.js | | |-- images | | | `-- some.png | | |-- components | | | `-- somecomposite.xhtml | | `-- sometemplate.xhtml | |-- tags | | `-- sometag.xhtml | |-- beans.xml | |-- 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" /> ...
如果您使用的是Maven,则/META-INF必须将文件夹放在其中src/main/resources,因此不能放置src/main/java。
如果要触发JSF2注释扫描仪,以及让你可以把@ManagedBean,@FacesValidator,@FacesConverter和后妃在该项目中,以及创建一个JSF2兼容的/META-INF/faces-config.xml文件,以及(它甚至可以保持为空)。
<?xml version="1.0" encoding="UTF-8"?> <faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" version="2.0"> </faces-config>
就这样。