Ceylon 1.2.2于3月份发布,当时它提供了一个新功能,并没有引起太大的反响,但是我认为值得在此博客中对其进行更多解释。
通常,Ceylon开发人员必须下载Ceylon发行版才能编译Ceylon代码,Ceylon用户也是如此。 签出Ceylon项目时,必须确保使用正确版本的Ceylon发行版进行编译,并且在某些操作系统上,切换Ceylon发行版可能会有些涉及。
为了解决该问题,Tako实施了ceylon bootstrap
工具 ,该工具在很大程度上受Gradle Wrapper的启发,可让您在Ceylon项目中生成一个小的脚本,您的用户和开发人员可以使用该脚本自动下载正确的Ceylon发行版并对其进行缓存。供将来使用。
让我们通过生成一个新的Ceylon项目来进行尝试(在具有Ceylon 1.2.2发行版的机器上,这是鸡和蛋的问题,我们必须从某个地方开始):
$ ceylon new hello-world --ant=no --eclipse=no myproject
Enter module name [com.example.helloworld]:
Enter module version [1.0.0]:
现在让我们检查一下它是否可以编译并运行:
$ cd myproject
$ ceylon compile,run com.example.helloworld
Note: Created module com.example.helloworld/1.0.0
Hello, World!
优秀的! 现在,我们添加Ceylon引导程序工具:
$ ceylon bootstrap
$ ls ceylonb*
ceylonb ceylonb.bat
$ ls .ceylon/bootstrap/
ceylon-bootstrap.jar ceylon-bootstrap.properties
如您所见,我们创建了两个ceylonb脚本(一个用于Unix,一个用于Windows),以及一个用于这些脚本的新配置文件夹,其中包含一个很小的jar(24k)和一个设置文件,该文件指向要使用的发行版:
$ cat .ceylon/bootstrap/ceylon-bootstrap.properties
#Generated by 'ceylon bootstrap'
#Tue Aug 02 17:29:39 CEST 2016
distribution=https\://downloads.ceylon-lang.org/cli/ceylon-1.2.2.zip
这些脚本和文件夹应提交给您的项目代码,以便其他人可以使用它们。
现在,只要有人签出您的项目,他们就可以使用提供的ceylonb脚本来工作,而不必预先安装Ceylon发行版:
$ ./ceylonb compile,run com.example.helloworld
Downloading Ceylon... 100%
Note: Created module com.example.helloworld/1.0.0
Hello, World!
第一次运行时,它将把所需的Ceylon发行版下载到~/.ceylon/dists
,但是从那时起,每当调用ceylonb
,它将重新使用该发行版,而无需下载任何内容。 甚至使用相同发行版的其他项目也可以使用它。
就像我说的,Gradle Wrapper用户已经习惯了这一点,但是,这确实是一个好主意,并且没有理由为什么编程语言不能做到这一点!
翻译自: https://www.javacodegeeks.com/2016/08/ceylon-ceylon-bootstrap.html