gpt4 book ai didi

smalltalk - 如何为 Pharo 图像添加依赖项?

转载 作者:行者123 更新时间:2023-12-04 20:28:19 25 4
gpt4 key购买 nike

使用 Seaside 构建应用程序后,我设法使用冰山将 Pharo 图像代码推送到 GitHub。我能够在一台新机器上将它克隆到一个新的 Pharo 镜像中。但是,将包加载到图像中似乎会生成请求一些海边依赖项的错误。我仍然不明白向 Pharo 图像添加依赖项的概念。有人可以向我解释如何去做吗?我需要它来进行代码部署和协作。

最佳答案

对不起,我没有完全理解你的问题。如果你的意思是如何定义一个项目(它可以有依赖项等),比如你会用 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.

这或多或少是这样。但请注意,声明依赖项是一件复杂的事情(无论您使用哪种语言),我制作的示例将仅涵盖非常基础的知识。

关于smalltalk - 如何为 Pharo 图像添加依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52794911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com