我正在将我们的Web应用程序从Tomcat 7迁移到Jetty 9。Ant 任务用于 Jetty 启动。Jar 文件位于 WEB-INF/lib 下,类文件位于 .build/classes 下。
问题是:在执行注释扫描时,有没有办法指定包含类文件而不是jar的文件夹?
以下是正在使用的 Ant 目标配置:
<target name="jetty.run">
<jetty.run tempDirectory="jetty-temp">
<webApp war="app" contextpath="/">
<attributes>
<attribute name="org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern" value=".*/.*jsp-api-[^/]*.jar$|.*/.*jsp-[^/]*.jar$|.*/.*taglibs[^/]*.jar$"/>
<attribute name="org.eclipse.jetty.server.webapp.WebInfIncludeJarPattern" value=".*classes.*"/>
</attributes>
<classes dir=".build/classes">
<include name="**/*.class" />
</classes>
<!--<lib dir=".build/classes">
<include name="**/*.class" />
</lib>-->
</webApp>
<connectors>
<connector port="8090"/>
<connector port="80"/>
</connectors>
</jetty.run>
</target>
我尝试指定类元素,但它似乎被忽略了(.build 文件夹位于 build.xml所在的同一位置)。因此,必须构建应用程序代码 jar 并将其复制到 WEB-INF/lib 中,以便应用程序正确启动。
罐子驻留在标准位置,但类不。这会以某种方式导致这种情况吗?
我将不胜感激任何帮助。
谢谢维塔利。
我认为您应该为此在码头上打开一个错误:https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Jetty
jetty-ant 集成会将 添加到类路径中,但不幸的是,它不会扫描它们以查找注释。
如果您升级到 jetty-9.1.0.M0,那么您可以尝试将类 dir 指定为 ,因为我们在 extraClasspath 上实现了注释扫描,其中包含此错误:https://bugs.eclipse.org/bugs/show_bug.cgi?id=416597。但是请注意,正如 Joakim 所说,目录名称不能以"."开头,因为这表示隐藏目录。
问候一月