3

我一直在尝试使用 gradle jetty 插件设置 ssl,但没有成功。我也未能成功找到与之相关的文档。有没有人可以为我指出正确的方向?

编辑

作为搜索的一部分,我发现了以下示例

jettyRun {
    def httpConnector = new org.mortbay.jetty.nio.SelectChannelConnector();
    httpConnector.port = 8080
    def httpsConnector = new org.mortbay.jetty.security.SslSocketConnector();
    httpsConnector.port = 8443
    httpsConnector.keystore = "keystore.jks"
    httpsConnector.keyPassword = "keystorepwd"
    httpsConnector.truststore = "cacerts"
    httpsConnector.trustPassword = "cacertspwd"
    connectors [httpConnector, httpsConnector]
}

但是按照那个样本,给我留下了以下问题......

unable to resolve class org.mortbay.jetty.nio.SelectChannelConnector 
unable to resolve class org.mortbay.jetty.security.SslSocketConnector

我是否必须在构建过程中添加一些依赖项。我已经查看了 jar 文件作为我的 gradle 发行版的一部分,一切似乎都是正确的。

编辑 2

我通过添加以下内容解决了类路径的问题

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'org.mortbay.jetty:jetty:6.1.25'
    }
}

但现在使用以下消息对投诉进行 gradle 投诉:

Cannot cast object 'SelectChannelConnector@0.0.0.0:8080' with class 'org.mortbay.jetty.nio.SelectChannelConnector' to class 'org.mortbay.jetty.Connector'

如果有人似乎找到了答案,我将不胜感激!

4

3 回答 3

4

通过使用Gretty gradle 插件而不是 Jetty 插件,您可以大大简化 gradle 脚本的 SSL/HTTPS 部分。

它通过单行指令支持 HTTPS:

gretty.httpsEnabled = true

它还提供了许多其他有用的功能,所有这些功能都记录在Gretty 文档站点

披露:我是 Gretty 插件的作者。

于 2014-05-28T19:44:45.500 回答
1

我找到了解决方案,而不是将 jar 作为依赖项导入,我只是简单地将类加载到 jettyRun 任务的类加载器上。类似于以下内容

 httpConnector = jettyRun.class.classLoader.loadClass(....).newInstance()
于 2013-09-20T17:19:38.850 回答
0

目前 Jetty 插件不提供任何 SSL 功能。如果你没有绑定到 Jetty,你可以使用Tomcat 插件,它允许配置 SSL。

于 2013-09-20T14:35:29.577 回答