如何在同一war文件中创建jetty 6和jetty 7兼容的jetty-web.xml文件?

时间:2011-10-04 11:16:12

标签: jetty jboss-weld appserver

在Jetty 6中,我需要创建一个包含以下内容的WEB-INF/jetty-web.xml文件:

<Configure id="webAppCtx" class="org.mortbay.jetty.webapp.WebAppContext">

但是在Jetty 7中我需要相同的文件WEB-INF/jetty-web.xml来包含它:

<Configure id="webAppCtx" class="org.eclipse.jetty.webapp.WebAppContext">

两个文件都不同(org.mortbay vs org.eclipse)。如何创建1个与jetty 6和jetty 7兼容的war文件?

2 个答案:

答案 0 :(得分:2)

我不知道这是否可以在一个文件中完成,但是您可以使用ANT构建脚本来创建两个特定于版本的WAR(如果您已经这样做了,那就太糟糕了)

在调用war build之前,让ANT在你的war basedir中复制你的Jetty 6或7 WEB-INF / jetty-web.xml文件,然后调用类似的东西:

<target name="buildwar">
        <buildnumber />
    <war basedir="dist/web" destfile="${warName}-jetty${jettyVersion}.war"
     webxml="dist/WEB-INF/web.xml">         
        <webinf dir="dist/WEB-INF/">
            <include name="**/*.jar" />
        </webinf>
        <manifest>
            <attribute name="displayName" value="${warDisplayName} for Jetty ${jettyVersion}" />
            <attribute name="Implementation-Version" value="${build.number}" />            
        </manifest>         
    </war>
</target>

答案 1 :(得分:0)

穷人的解决方案:为Jetty构建2场战争

我正在考虑using maven assembly scripts to build multiple wars,但是,我需要完全复制源代码中两个版本的jetty-web.xml文件。