gpt4 book ai didi

dependency-management - 法罗依赖 hell

转载 作者:行者123 更新时间:2023-12-05 01:02:50 27 4
gpt4 key购买 nike

我想在 Pharo 中开发一个简单的项目,我想在 Metacello 中添加它的依赖项。我的项目依赖于 Glamour、Roassal 和 XMLSupport。

一种干净地安装我的项目的方法是先手动安装依赖项。继书Deep into Pharo一个可以做

Gofer new
smalltalkhubUser: 'Moose' project: 'Glamour';
package: 'ConfigurationOfGlamour';
load.
(Smalltalk at: #ConfigurationOfGlamour) perform: #loadDefault.

Gofer new smalltalkhubUser: 'ObjectProfile'
project: 'Roassal';
package: 'ConfigurationOfRoassal';
load.
(Smalltalk at: #ConfigurationOfRoassal) load.

Gofer new
squeaksource: 'XMLSupport';
package: 'ConfigurationOfXMLSupport';
load.
(Smalltalk at: #ConfigurationOfXMLSupport) perform: #loadDefault.

然后我的项目将正常工作。

我试图创建一个 ConfigurationOfMyProject使用 Versionner,我添加了 Glamour、Roassal 和 XMLSupport 作为依赖项,使用当前安装在我的镜像中的版本(分别为 2.6-snapshot、1.430 和 1.2.1)。

问题是我无法在新图像中使用 Metacello 加载我的项目。该项目加载良好,但每当我尝试加载我的类时,我都会在 Glamour 中遇到方法丢失错误。此外,很明显有些不同,因为即使是世界菜单也有不同的条目。

我尝试过其他版本的组合,包括使用稳定版 Glamour (2.1),但我遇到了更多错误,包括甚至无法在 Versioner 中打开项目(它提示缺少 Roassal 名称)。

干净地添加这些依赖项的正确方法是什么?

最佳答案

首先,我想强调的是,如果配置在类 ConfigurationOf 中,您可以使用 #configuration 加载它。信息:

Gofer new
smalltalkhubUser: 'Moose' project: 'Glamour';
configuration;
load.
(Smalltalk at: #ConfigurationOfGlamour) perform: #loadDefault.

A 我没有看到你的项目,我只能建议你手工编写配置。有一个简单的教程叫做 Dead simple intro to Metacello .

根据你的描述,应该是这样的:
baseline01: spec 
<version: '0.1'>

spec for: #common do: [
spec blessing: #release.
spec repository: 'your repo url'.

spec
package: 'YourPackage' with: [
spec requires: #('Glamour' 'Roassal' 'XMLSupport') ].
"also maybe you have a couple of packages that depend on different projects"

spec project: 'Glamour' with: [
spec
className: 'ConfigurationOf Glamour';
repository: 'http://smalltalkhub.com/mc/Moose/Glamour/main';
version: #'2.6-snapshot' ].

spec project: 'Roassal' with: [
spec
className: 'ConfigurationOfRoassal';
repository: 'http://smalltalkhub.com/mc/ObjectProfile/Roassal/main';
version: #'1.430' ].

"and same for XMLSupport" ].

你也可以尝试加载#development 版本,因为我觉得像 Roassal 和 Glamour 这样的项目有非常过时的稳定版本。另请注意,Roassal2 正在积极开发中,将取代 Moose 平台中的原始 Roassal,也许您想考虑使用它。

关于dependency-management - 法罗依赖 hell ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25683474/

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