所有的cookbook 代码片段,组合成了可运行的Gradle项目。
运行任何cookbook要求运行至少一个Java类
只需要浏览到需要运行的类(集),然后通过IDE运行它(们)
每一个cookbook代表了一个Swim 伺服器(Server)。为一个已知的cookbook运行伺服器,可简单地用命令行来发送 gradle $COOKBOOK-NAME:run
(或者是它的其他变异之一,这在接下来的部分中会概括)来执行。例如:gradle web-agents:run
运行cookbook网络代理 (Web Agent)。
Cookbook的展示中会需要运行多个Java类,用户将会发现每个Java类都会有相对应的不同Gradle run task。在所有的cookbook的子目录中都可以找到专门的README,里面描述了如何运行子目录Task。例如:要使得完全运行Command Lanes cookbook,用户必须在该目录中发送 gradle command-lanes:run
和 gradle command-lanes:runClient
。
用户只有在安装了Gradle的机器上才能够使用 gradle
命令。补充:cookbook只支持Gradle 5.2 版本及以上
若用户并不希望安装或者更新当地Gradle分配,用户可以使用以下的命令来代替 gradle
:
-
./gradlew
适用于大部分非Windows环境 -
.\gradlew.bat
适用于Windows
创建和包装一个cookbook,只需要运行 gradle $COOKBOOK-NAME:build
(或者是之前叙述过的 gradle
变异命令之一)
该命令将会在 $COOKBOOK_NAME/build/distributions/
目录下创建 .tar
和 .zip
文件。解压其中任意一个文件使脚本文件显示在bin
目录下
在默认情况下,引发的脚本将会只运行指定的cookbook的主要Swim伺服器。对于那些需要运行多个Java类的cookbook,最简单地方法是在新文件中精确地复制黏贴脚本,然后将默认主函类换成目标主类。
举例来说,出口网桥cookbook 需要按顺序运行 swim.grade.db.Database
, swim.grade.GradePlane
, 和 swim.grade.Sim
类。在接下来的步骤中将会介绍如何配置环境使得机器可运行以上类(该教程假设基于*nix环境,但相对应的Windows指令不言自明):
-
gradle egress-bridges:build
(或者其他之前叙述过的gradle
变异) -
cd egress_bridges/build/distributions/
-
unzip egress-bridges-3.10.0.zip
-
cd egress-bridges-3.10.0/bin
(若cookbook只需要运行一个Java类,则到此已完成运行) -
cp egress-bridges database
(在Windows环境中使用.bat
文件) -
编辑
database(.bat)
文件,将swim.grade.GradePlane
替换成swim.grade.db.Database
-
cp egress-bridges sim
(在Windows环境中使用.bat
文件) -
编辑
sim(.bat)
, 将swim.grade.GradePlane
替换成swim.grade.Sim
此时运行cookbook只需要在之前提到的 bin/
目录下按照顺序运行 ./database
,./egress-bridges
,以及 ./sim
即可。