gpt4 book ai didi

java - 如何使用 Ant 将 jsp 预编译的 web.xml 片段与主 web.xml 合并

转载 作者:搜寻专家 更新时间:2023-10-31 08:18:39 27 4
gpt4 key购买 nike

我们的 Web 应用程序通常使用 web.xml,其中包含一些 jsp 和 jsp 标记文件。我想切换到使用预编译的 jsp。我在构建中进行了预编译,它生成了 web.xml 片段,现在我想将该片段合并到主 web.xml 中。

web.xml 是否有一个include 类型指令可以让我包含该片段。

理想情况下,对于 DEV,我将保持原样 - 因为它有助于动态更改 jsp 并立即查看更改,但对于 UAT/PROD,jsp 将被预编译,因此工作速度更快。

最佳答案

我使用 Tomcat jasper ANT tasks在我的项目中,它将 JSP 预编译为 servlet,并将新的 servlet 映射添加到原始 web.xml。在 DEV 构建中,只需跳过此步骤并部署 JSP,而无需预编译和修改 web.xml。

    <?xml version="1.0"?>
<project name="jspc" basedir="." default="all">
<import file="${build.appserver.home}/bin/catalina-tasks.xml"/>

<target name="all" depends="jspc,compile"></target>

<target name="jspc">
<jasper
validateXml="false"
uriroot="${build.war.dir}"
webXmlFragment="${build.war.dir}/WEB-INF/generated_web.xml"
addWebXmlMappings="true"
outputDir="${build.src.dir}" />
</target>

<target name="compile">
<javac destdir="${build.dir}/classes"
srcdir="${build.src.dir}"
optimize="on"
debug="off"
failonerror="true"
source="1.5"
target="1.5"
excludes="**/*.smap">
<classpath>
<fileset dir="${build.war.dir}/WEB-INF/classes">
<include name="*.class" />
</fileset>
<fileset dir="${build.war.lib.dir}">
<include name="*.jar" />
</fileset>
<fileset dir="${build.appserver.home}/lib">
<include name="*.jar" />
</fileset>
<fileset dir="${build.appserver.home}/bin">
<include name="*.jar"/>
</fileset>
</classpath>
<include name="**" />
<exclude name="tags/**"/>
</javac>
</target>

<target name="clean">
<delete>
<fileset dir="${build.src.dir}"/>
<fileset dir="${build.dir}/classes/org/apache/jsp"/>
</delete>
</target>
</project>

如果您已经有 JSP 编译工作并且只想合并 web.xml 文件,可以编写一个简单的 XSLT 以将新生成的 web.xml 中的选定元素(例如 servlet 映射)添加到您的原始文件中。

关于java - 如何使用 Ant 将 jsp 预编译的 web.xml 片段与主 web.xml 合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/162079/

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