如何从 Metacello 配置中查询所有 Monticello 包?
How to query all Monticello packages from a Metacello Configuration?
我有一个像 ConfigurationOfAthens 这样的 Metacello 配置,我想知道提供了哪些包,结果是:
- 雅典-开罗
- 雅典-开罗池
- 雅典核心区
- 等等
我试过了
(GoferConfigurationReference name: 'ConfigurationOfAthens') packages.
但系统不理解
Pharo 4 支持吗?
如果您只需要包名称,您可以使用助手 类 从配置中查询。所以你的查询将是
(MTProject
newFromVersion: (ConfigurationOfAthens project version: #development)
inConfiguration: ConfigurationOfAthens) dependenciesFilteredBy: MTPackage.
这些 MT 类 - 听起来应该属于 Metacello - 不在 Metacello 包中,但目前在 Versionner 中(默认包含在 Pharo 图像中)。
深入研究结果表明,某些 "MTPackages" 没有对应的 "RPackage"(这可能是一个错误,或者包表示模型中的一些奇怪功能)。所以你需要进一步过滤:
((MTProject
newFromVersion: (ConfigurationOfAthens project version: #development)
inConfiguration: ConfigurationOfAthens) dependenciesFilteredBy: MTPackage)
select: [ :pkgName |
(RPackageOrganizer default
packageNamed: pkgName name asSymbol
ifAbsent: []) notNil ]
我有一个像 ConfigurationOfAthens 这样的 Metacello 配置,我想知道提供了哪些包,结果是:
- 雅典-开罗
- 雅典-开罗池
- 雅典核心区
- 等等
我试过了
(GoferConfigurationReference name: 'ConfigurationOfAthens') packages.
但系统不理解
Pharo 4 支持吗?
如果您只需要包名称,您可以使用助手 类 从配置中查询。所以你的查询将是
(MTProject
newFromVersion: (ConfigurationOfAthens project version: #development)
inConfiguration: ConfigurationOfAthens) dependenciesFilteredBy: MTPackage.
这些 MT 类 - 听起来应该属于 Metacello - 不在 Metacello 包中,但目前在 Versionner 中(默认包含在 Pharo 图像中)。
深入研究结果表明,某些 "MTPackages" 没有对应的 "RPackage"(这可能是一个错误,或者包表示模型中的一些奇怪功能)。所以你需要进一步过滤:
((MTProject
newFromVersion: (ConfigurationOfAthens project version: #development)
inConfiguration: ConfigurationOfAthens) dependenciesFilteredBy: MTPackage)
select: [ :pkgName |
(RPackageOrganizer default
packageNamed: pkgName name asSymbol
ifAbsent: []) notNil ]