在Jetty配置中使用Classes文件夹而不是jar

时间:2013-09-19 15:52:49

标签: java ant jetty

我正在将我们的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>

我已经尝试过指定classes元素,但它似乎被忽略了(.build文件夹位于build.xml所在的位置)。因此,必须构建应用程序代码jar并将其复制到WEB-INF / lib,以便应用程序正常启动。

Jars位于标准位置,但类不存在。这可能会导致这种情况吗?

我会感激任何帮助。

谢谢, 维塔利。

1 个答案:

答案 0 :(得分:1)

我认为您应该在码头上打开一个错误: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所说,dir名称不能以“。”开头。因为这表示隐藏目录。

问候 扬