我正在尝试在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.
然后我的项目将正常工作.
我尝试使用Versionner创建ConfigurationOfMyProject,并使用当前安装在我的映像中的版本(分别为2.6-snapshot,1.430和1.2.1)添加了Glamour,Roassal和XMLSupport作为依赖项.
问题是我无法在新图像中使用Metacello加载我的项目.该项目加载正常,但每当我尝试加载我的类时,我得到方法缺少Glamour中的错误.此外,很明显有些东西是不同的,因为即使世界菜单也有不同的条目.
我尝试了其他版本的组合,包括使用稳定的Glamour(2.1),但我已经获得了更多错误,包括甚至无法在Versioner中打开项目(它抱怨缺少Roassal名称).
解决方法
首先,我想强调一下,如果配置在类ConfigurationOf< proj-name>中您可以使用#configuration消息加载它:
Gofer new smalltalkhubUser: 'Moose' project: 'Glamour'; configuration; load. (Smalltalk at: #ConfigurationOfGlamour) perform: #loadDefault.
我看不到你的项目,我可以建议你手工编写配置.有一个简单的教程叫做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,也许您想考虑使用它.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。