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配置:configurationFiles
和configurationXml
(当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>
)
似乎configurationXml
对fullClasspath
的直接依赖是不可能的,因为configurationXml
is SettingKey
和fullClasspath
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