저는 Pharo에서 간단한 프로젝트를 개발하려고합니다. Metacello에 의존성을 추가하고 싶습니다. 내 프로젝트는 Glamour, Roassal 및 XMLSupport에 달려 있습니다.Pharo dependency hell
내 프로젝트를 깔끔하게 설치하는 방법은 먼저 의존성을 수동으로 설치하는 것입니다. 책 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 스냅 샷, 1.430 및 1.2.1)에 현재 설치된 버전을 사용하여 Glamour, Roassal 및 XMLSupport를 종속성으로 추가했습니다.
문제는 신선한 이미지에서 Metacello를 사용하여 프로젝트를로드 할 수 없다는 것입니다. 프로젝트는 잘로드되지만 클래스를로드하려고 할 때마다 글래머에 오류가 누락되었습니다. 더욱이, 뭔가 다른 점은 분명합니다. 월드 메뉴조차도 다른 항목을 가지고 있기 때문입니다.
안정적인 글래머 (2.1)를 사용하는 것을 포함하여 다른 버전의 조합을 시도했지만 Versioner에서 프로젝트를 열지 못하는 것을 포함하여 더 많은 오류가 발생했습니다 (누락 된 Roassal 이름에 대해 불만을 토로 함).
이러한 종속성을 명확하게 추가하는 올바른 방법은 무엇입니까?
내가 구성이 클래스 에 ConfigurationOf < 경우 PROJ-이름 > 당신이#configuration
메시지 사용으로로드 할 수 있음을 강조하고자하는 모든의
도움 주셔서 감사합니다. 그래도 이미지에 ConfigurationOfMyProject라는 오래된 버전이 많이 있기 때문에 문제가 있습니다. 모든 것을 삭제하고 다시 시작하는 방법이 있습니까? – Andrea
좋아, 나는 그것을 잘 만들 수 있었다. 먼저 이미지에서 ConfigurationOfMyProject를 언로드 한 다음 패키지 캐시 및 리포지토리에서 수동으로 제거한 다음 마지막으로 신선한 상태로 시작할 수있었습니다. – Andrea
여전히 질문이 하나 있습니다. 내 이미지를 새로운 이미지로로드 한 후 (현재 작동) 세계 메뉴는 약간 다릅니다 : Roassal 요소는 하위 메뉴에 없습니다. 위와 같이 Roassal을로드하면 (Gofer로) 고정되어 있지만 Roassal의 새 버전을로드하려고한다는 경고가 표시되고 작업 복사본이 더럽습니다. 왜 그런가요? 그것은 글래머가 그것을 변경했기 때문입니까?나는 다소 혼란스러운 태도이다 – Andrea