sbt-web-plugin:使用 configurationXml 指定码头的类路径

Posted

技术标签:

【中文标题】sbt-web-plugin:使用 configurationXml 指定码头的类路径【英文标题】:sbt-web-plugin: specifying classpath to jetty with configurationXml 【发布时间】:2012-10-12 04:15:01 【问题描述】:

我尝试在使用 sbt-web-plugin 时为码头创建自定义配置(用于运行 container:start)。有two container settings允许指定自定义码头xml配置:configurationFilesconfigurationXml(当customConfiguration为真时)。

但是,这完全覆盖了由 sbt-web-plugin 完成的码头内部配置,因此自定义配置应该完全配置码头。如果不指定从项目和依赖项编译的 .class 文件的类路径,它将无法工作。

我试图做这样的事情:

configurationXml in container.Configuration <<= fullClasspath (
  <Configure id="Server" class="org.eclipse.jetty.server.Server">
    ...
    <Set name="handler">
      <New class="org.eclipse.jetty.webapp.WebAppContext">
        <Set name="resourceBase"><SystemProperty name="jetty.home" default="."/>/src/main/webapp</Set>
        <Set name="descriptor"><SystemProperty name="jetty.home" default="."/>/src/main/webapp/WEB-INF/web.xml</Set>
        <Set name="contextPath">/</Set>
        <Set name="extraClasspath">/* classpath should be here */</Set>
      </New>
    </Set>
    ...
  </Configure>
)

似乎configurationXmlfullClasspath 的直接依赖是不可能的,因为configurationXml is SettingKeyfullClasspath is TaskKey

Tasks with dependencies

这一点的实际重要性在于,您不能将任务作为非任务设置的依赖项。

是否可以在configurationXml 参数中包含fullClasspath 设置?

如果没有,是否仍然可以将自定义配置设置添加到 container:start 上调用的码头开发服务器?

【问题讨论】:

【参考方案1】:

您可以使用env 设置仅自定义WebAppContext

env in Compile := Some(file(".") / "jetty-env.xml" asFile)

例如,考虑 myproject/jetty-env.xml 中的以下内容:

<Configure class="org.eclipse.jetty.webapp.WebAppContext">
  <Set name="contextPath">/custom</Set>
</Configure>

这将在上下文路径 /custom 下部署您的 webapp,但不会更改底层 Server 的任何配置。

【讨论】:

env 设置记录在哪里? 您可以在docs for version 0.9 中找到它,但它已经过时且已被弃用。我会考虑为 2.1 更新这个。

以上是关于sbt-web-plugin:使用 configurationXml 指定码头的类路径的主要内容,如果未能解决你的问题,请参考以下文章

python,最简单的ini/config容器(在xdgu configu home中有文件夹)

springboot启动过程中出现You must configure either the server or JDBC driver (via the serverTimezone configu

mybatis框架源码学习

使用@SpringBootApplication注解

Spring中的Properties

关与 @EnableConfigurationProperties 注解