3

我有一个锡兰项目。我想将它分发到一个包含所有依赖项的 uber jar 中,以便可以通过简单的方式执行它

java -jar myproject.jar

这在锡兰可行吗?

4

2 回答 2

2

即将推出的 Ceylon 1.2.3 具有fat-jar子命令。请参阅跟踪此功能的https://github.com/ceylon/ceylon/issues/5932 。要现在使用它,您需要从http://ceylon-lang.org/download/下载每晚构建版本或自己构建 Ceylon。

使用 Ceylon 1.2.3,假设您的模块被调用myproject,您可以这样做

ceylon-1.2.3/bin/ceylon fat-jar myproject
java -jar myproject-1.0.0.jar

这将执行文件中函数run()中的代码source/myproject/run.ceylon

一个简单的 hello world 程序的 uberjar 目前有 2.4 MiB。

于 2016-05-23T18:57:07.203 回答
0

Ceylon Gradle 插件可以为您完成,只需使用任务createJavaRuntime

gradle createJava

运行应用程序:

bash build/java-runtime/run.sh

或您的操作系统中的等效项。

如果将java-runtime目录复制到没有安装 Ceylon 的机器上,只有 JVM,它会工作。

它不是一个胖罐子,但您可以将它作为 zip 分发并获得大部分相同的好处。

于 2016-05-26T17:41:02.447 回答