我对这款Jetty Maven插件感到有些沮丧..
我正在尝试使用jetty.xml文件配置jetty-maven-plugin。 ( 见下文 )。
我希望Jetty从8081端口开始。
然而,当我跑
时,我一直在控制台中获得8080mvn jetty:run
我还希望看到日志打印
Configuring Jetty from xml configuration file
我在jetty-maven-plugin来源中找到了。但我在任何地方都看不到它。
我验证了所有文件都在正确的位置,到目前为止我尝试了很多配置变体。
我的Maven配置是:
...
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>${jettyVersion}</version>
<configuration>
<jettyConfig>${project.basedir}/src/main/resources/jetty.xml</jettyConfig>
</configuration>
</plugin>
.....
<properties>
<jettyVersion>7.2.0.v20101020</jettyVersion>
</properties>
我的jetty.xml文件是:
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure id="Server" class="org.eclipse.jetty.server.Server">
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
<Set name="host"><SystemProperty name="jetty.host" /></Set>
<Set name="port"><SystemProperty name="jetty.port" default="8081"/></Set>
<Set name="maxIdleTime">300000</Set>
<Set name="Acceptors">4</Set>
<Set name="statsOn">false</Set>
<Set name="confidentialPort">8443</Set>
<Set name="lowResourcesConnections">20000</Set>
<Set name="lowResourcesMaxIdleTime">5000</Set>
</New>
</Arg>
</Call>
</Configure>
我几乎阅读了所有可能的资源,包括所有stackoverflow的Q&amp; A. 我肯定错过了什么。
尽管Eclipse将POM中jetty.xml的配置参数记录为“jettyXml” - 我下载了它们的源代码。它绝对是“jettyConfig”。
查看他们的代码,我看到以下
public void applyJettyXml() throws Exception
{
if (getJettyXmlFile() == null)
return;
getLog().info( "Configuring Jetty from xml configuration file = " + getJettyXmlFile() );
XmlConfiguration xmlConfiguration = new XmlConfiguration(getJettyXmlFile().toURL());
xmlConfiguration.configure(this.server);
}
我正在为getter添加实现
public File getJettyXmlFile ()
{
return this.jettyConfig;
}
所以我希望至少能看到打印Configuring Jetty from xml...
- 但它看起来并不好......
我设法从命令行覆盖端口,但我对XML配置感兴趣。
答案 0 :(得分:1)
将jettyConfig
重命名为webAppXml
。
答案 1 :(得分:0)
如果您仍在追求这一点,那么可以从http://wiki.eclipse.org/Jetty/Feature/Jetty_Maven_Plugin尝试两件事。
1)“你必须通过添加对jetty-servlets的依赖来明确启用Jetty扩展”
<plugin>
...
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>7.2.0.v20101020</version>
</dependency>
</plugin>
2)如果你做了第1步,通过将它(org.mortbay.jetty,而不是org.eclipse.jetty)放入settings.xml来指示maven在正确的groupId上
<profile>
...
<pluginGroups>
<pluginGroup>org.mortbay.jetty</pluginGroup>
</pluginGroups>
</profile>
答案 2 :(得分:0)
您应该尝试从
更改artifactid <artifactId>maven-jetty-plugin</artifactId>
到
<artifactId>jetty-maven-plugin</artifactId>
因为您在jetty.xml中使用的类以带有jetty 7的org.eclipse.jetty为前缀