【发布时间】:2011-04-13 01:31:07
【问题描述】:
我有一个打包为 jar 的 Maven 项目。
我还有一个打包为war 的Maven 项目。这个战争项目有一个 tld 文件和一些 xhtml 文件(标签库)。战争项目的结构(基本上)是:
pom.xml
src
main
java
...
webapp
WEB-INF
my-facelets.taglib.xml
facelets
aTag.xhtml
anotherTag.xhtml
META-INF
my-facelets.taglib.tld
然后出现了一个需求,将war项目中的那些xml、xhtml和tld文件移除,打包到jar项目中。所以我的第一次尝试是在 jar 项目的 POM 中添加:
<resources>
<resource>
<directory>src/main/tld</directory>
<targetPath>META-INF</targetPath>
</resource>
<resource>
<directory>src/main/taglib</directory>
<targetPath>WEB-INF</targetPath>
</resource>
</resources>
当然,将文件放入src/main/tld(我想导出到META-INF)和src/main/taglib(我想导出到WEB-INF)。罐子是按照我的意愿创建的:
myjar
com
my
classes
WEB-INF
META-INF
my-facelets.taglib.tld
WEB-INF
...
然后我将这个新 jar 作为 maven 依赖项添加到我的第一个 war 项目中。
问题在于 jar 的 META-INF、WEB-INF(jar 在 war 的 WEB-INF/lib 内)中的那些 .tld、.xhtml、.xml 文件无法识别。显然它们应该直接进入战争结构,除非执行了一些其他配置。这是必须的要求,因为多个war项目会使用jar项目的特性(类和taglibs)。
【问题讨论】:
-
如果你把这些文件放在jar里,而不是放在WEB-INF或META-INF文件夹里,它会起作用吗?
标签: maven dependencies jsf-2 war taglib