项目开发中为了提高复用性,经常把自定义标签打成单独的jar文件,同时将tld文件添加到jar文件中的META-INF目录下,这样其他的项目就能很方便的使用这些自定义标签。
tld文件中定义:
1 2 3 4 |
<tlib-version>1.0</tlib-version> <jsp-version>1.2</jsp-version> <short-name>demo</short-name> <uri>/demo-tags</uri> |
jsp中使用:
1 2 |
<%@ taglib prefix="itil" uri="/demo-tags" %> <demo:dateFormat date="${history.createdAt}" format="yyyy-MM-dd"></demo:dateFormat> |
如何将tld文件放置在META-INF下,同时打进jar包呢?首先想到的是将META-INF放置在/main/resources目录下,但打包的时候却发现Maven将自己的描述文件放置在META-INF下面,我们自定义的tld文件却被覆盖掉了。
解决的方式就是不让Maven在打包时生成描述文件,只需要编辑pom.xml文件如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<build> <plugins> <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> <classesDirectory>target/classes/</classesDirectory> <archive> <addMavenDescriptor>false</addMavenDescriptor> </archive> </configuration> </plugin> </plugins> </build> |