在使用Seaside构建应用程序后,我设法使用冰山将我的Pharo图像代码推送到 GitHub.我能够在新机器上将其克隆到新的Pharo图像中.但是,将包加载到图像中似乎会产生一个错误,要求一些海边依
基线是您需要使用源定义和保存的类(和包).以此为例:https://github.com/estebanlm/logger/blob/master/src/BaselineOfLogger/BaselineOfLogger.class.st
(这是我发现的最小的例子,项目本身并不是很有趣).
我将分解解释:
您有一个名为BaselineOfLogger的类,它继承BaselineOf并放在一个具有相同基线名称的包中(这对于稍后查找它的工具很重要).
您定义了使用pragma基线标记的方法(pragma有点像注释):
BaselineOfLogger >> baseline: spec [ <baseline> spec for: #pharo do: [ self beacon: spec. spec package: 'Logger' ]. ]
正如您所看到的,此方法为Pharo定义了“规范”:
– 它将加载信标项目(我们稍后会看到)
– 它声明它将加载包Logger.
方法beacon:定义如下:
BaselineOfLogger >> beacon: spec [ spec baseline: 'Beacon' with: [ spec repository: 'github://pharo-project/pharo-beacon/repository' ] ]
正如您所看到的,它指向另一个项目(和另一个基线).
现在,既然你需要Seaside,你的Baseline可能看起来像这样:
BaselineOfMyProject >> baseline: spec [ <baseline> spec for: #pharo do: [ spec baseline: 'Seaside3' with: [ spec repository: 'github://SeasideSt/Seaside:v3.2.4/repository' ] spec package: 'MyPackage' ]. ]
最后,在你的图片中,加载你会做这样的事情:
Metacello new repository: 'github://yourname/yourprojectname/src'; baseline: 'MyProject'; load.
这或多或少是这样的.但请注意,除了声明依赖是一个复杂的问题(无论你使用的语言),我所做的例子将只涵盖非常基础.