对不起,我不完全理解你的问题。如果您的意思是如何定义一个项目(可以具有依赖项等),例如您将使用 maven 做的事情,您需要定义一个基线。
基线是您需要定义并与源一起保存的类(和包)。以此为例:https://github.com/estebanlm/logger/blob/master/src/BaselineOfLogger/BaselineOfLogger.class.st
(这是我找到的最小的例子,项目本身也不是很有趣)。
我将分部分解释:
您有一个名为 BaselineOfLogger 的类,它继承自 BaselineOf,并放置在与基线同名的包中(这很重要,以便工具稍后找到它)。
您定义了一个带有 pragma baseline 标记的方法(pragma 有点像注释):
BaselineOfLogger >> baseline: spec [
<baseline>
spec for: #pharo do: [
self beacon: spec.
spec package: 'Logger' ].
]
如您所见,此方法为 Pharo 定义了一个“规范”:
- 它将加载beacon 项目(我们稍后会看到)
- 它声明它将加载包Logger。
方法beacon:定义如下:
BaselineOfLogger >> beacon: spec [
spec
baseline: 'Beacon'
with: [ spec repository: 'github://pharo-project/pharo-beacon/repository' ]
]
如您所见,它指向另一个项目(和另一个基线)。
现在,由于您需要Seaside,您的基线可能如下所示:
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.
这或多或少是这样的。但请注意,声明依赖关系是一件复杂的事情(无论您使用哪种语言),我制作的示例将仅涵盖最基本的内容。