gpt4 book ai didi

maven - 如何将 TLD 和 Tag Lib 文件添加到 Maven 的 jar 项目中

转载 作者:行者123 更新时间:2023-12-04 01:57:46 25 4
gpt4 key购买 nike

我有一个打包为 jar 的 Maven 项目.

我还有一个 Maven 项目,打包为 war .这个 war 项目有一个 tld 文件和一些 xhtml 文件(标签库)。 war 项目的结构(基本上)是:

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-INFsrc/main/taglib 的那些) (我想导出到 WEB-INF 的那些)。 jar 是按照我的意愿创建的:
myjar
com
my
classes
WEB-INF

META-INF
my-facelets.taglib.tld
WEB-INF
...

然后我将这个新 jar 添加到我的第一个 war 项目中,作为 maven 依赖项。

问题是那些位于 jar 的 META-INF、WEB-INF(jar 位于 war 的 WEB-INF/lib 内)中的 .tld、.xhtml、.xml 文件无法识别。显然,它们应该直接进入 war 结构,除非执行一些其他配置。这是一个必须具备的要求,因为多个 war 项目将使用 jar 项目的特性(类和标签库)。

最佳答案

现在的做法是将 TLD 文件放入标签库 JAR 中,让类加载器找到它们。下载 Apache JSTL JAR 并查看它们是如何实现的。我建议遵循该约定。它也会简化您的应用程序,因为您不必在 web.xml 文件中声明 TLD:只需将 JAR 放在您的 CLASSPATH 中,并确保您的 .jsp 中的 URI 与 TLD 中的 URI 匹配。

关于maven - 如何将 TLD 和 Tag Lib 文件添加到 Maven 的 jar 项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5643495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com