我正在尝试制作一个使用ceylon.http.server
,ceylon.json
,ceylon.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));
}
答案 0 :(得分:3)
您的示例代码适合我。您是否有可能尝试使用Ceylon 1.3.1进行编译?我认为错误消息中的三个模块都是语言模块的依赖关系,因此我怀疑ceylon.http.server
和其他导入的模块引入ceylon.language/1.3.2
并且您的编译器添加了ceylon.language/1.3.1
。