java - Jetty 配置中使用类文件夹代替 jar

标签 java ant jetty

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

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

Jars 驻留在标准位置,但类则不然。这会以某种方式导致这个吗?

如果有任何帮助,我将不胜感激。

谢谢, 维塔利。

最佳答案

我认为你应该为此在 jetty 上打开一个错误:https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Jetty

jetty-ant 集成会将其添加到类路径中,但不幸的是它不会扫描它们以获取注释。

如果您升级到 jetty-9.1.0.M0,那么您可以尝试将类目录指定为 ,因为我们通过以下错误在 extraClasspath 上实现了注释扫描:https://bugs.eclipse.org/bugs/show_bug.cgi?id=416597 。但请注意,正如 Joakim 所说,目录名称不能以“.”开头。因为这表示隐藏目录。

问候 一月

关于java - Jetty 配置中使用类文件夹代替 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18899455/

相关文章:

ant - 使用liquibase比较数据库和生成sql脚本

java - 在混淆器中,保留包/默认访问变量和方法的关键字是什么?

java - 在 Linux 上使用 JProfiler

java - 如何通过 SparkJava 更改 Jetty 设置?/Form too Large Exception/org.eclipse.jetty.server.Request.maxFormContentSize

java - Jersey 2.27 无法处理 POST

java - LinkedBlockingQueue 和工作线程 - 这段代码线程安全吗?

java - ant 目标 vssget 不起作用

java - Jetty,isSecure() 在 HTTPS 连接上返回 false

java - 如何将 Ivy 的依赖项添加到 Eclipse PDE 目标平台?

java - 在 sshj 中处理带有指纹的 "[HOST_KEY_NOT_VERIFIABLE] Could not verify ` ssh-rsa` 主机 key