锡兰模块有不同的版本?

时间:2017-06-14 14:21:00

标签: ceylon

我正在尝试制作一个使用ceylon.http.serverceylon.jsonceylon.io模块的简单应用。

编译时,我遇到了这些错误:

Error:(4, 8) ceylon: source code imports two different versions of module 'com.redhat.ceylon.langtools.classfile': version '1.3.1' and version '1.3.2'
Error:(4, 8) ceylon: source code imports two different versions of module 'com.redhat.ceylon.model': version '1.3.1' and version '1.3.2'
Error:(4, 8) ceylon: source code imports two different versions of module 'com.redhat.ceylon.common': version '1.3.1' and version '1.3.2'

为什么我会得到它们?我认为锡兰可以处理不同版本的相同模块。在Ceylon tour, Packages and modules中,它明确地说“具有模块隔离功能的运行时以及管理同一模块的多个版本的能力”。

我的module.ceylon看起来像这样:

native ("jvm")
module server "1.0.0" {
    import ceylon.http.server "1.3.2";
    import ceylon.json "1.3.2";
    import ceylon.io "1.3.2";
}

我的(仅)源文件runServer.ceylon如下所示:

import ceylon.http.server { ... }
import ceylon.io { ... }

"Run the module `server`."
shared void runServer() {

    //create a HTTP server
    value server = newServer {
        //an endpoint, on the path /hello
            Endpoint {
                path = startsWith("/hello");
                //handle requests to this path
                service(Request request, Response response) =>
                        response.writeString("hello world");
            }
    };

    //start the server on port 8080
    server.start(SocketAddress("127.0.0.1",8080));

}

1 个答案:

答案 0 :(得分:3)

您的示例代码适合我。您是否有可能尝试使用Ceylon 1.3.1进行编译?我认为错误消息中的三个模块都是语言模块的依赖关系,因此我怀疑ceylon.http.server和其他导入的模块引入ceylon.language/1.3.2并且您的编译器添加了ceylon.language/1.3.1