【发布时间】:2013-09-24 19:40:28
【问题描述】:
我正在将我们的 Web 应用程序从 Tomcat 7 迁移到 Jetty 9。Ant 任务用于 Jetty 启动。 Jar 文件位于 WEB-INF/lib 下,class 文件位于 .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>
我尝试指定 classes 元素,但它似乎被忽略了(.build 文件夹位于 build.xml 所在的同一位置)。因此,必须构建应用程序代码 jar 并将其复制到 WEB-INF/lib 才能使应用程序正常启动。
Jars 位于标准位置,但类不存在。这会以某种方式导致这种情况吗?
如果有任何帮助,我将不胜感激。
谢谢, 活力。
【问题讨论】:
-
这可能是因为jetty从注释扫描中排除了以
"."开头的目录,因为它们被认为是隐藏目录。 -
哦,我明白了。谢谢!我将它重命名为build(只是我们将此文件夹用于Eclipse编译的类,但不会有问题)。