Извините, я не совсем понимаю ваш вопрос.Если вы имеете в виду, как вы можете определить проект (который может иметь зависимости и т. Д.), То, что вы делаете, например, с maven, вам нужно определить Baseline.
Baseline - это класс(и пакет), который вы должны определить и сохранить с вашими источниками.Возьмите этот пример: https://github.com/estebanlm/logger/blob/master/src/BaselineOfLogger/BaselineOfLogger.class.st
(это самый маленький пример, который я нашел, и сам проект не очень интересен).
Я объясню его по частям:
У вас есть класс с именем BaselineOfLogger
, который наследует BaselineOf
и помещается в пакет с тем же именем базовой линии (это важно, чтобы инструменты нашли его позже).
Вы определяете метод, помеченный прагмой baseline
(прагмы немного похожи на аннотации):
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.
Это более или менее так.Но обратите внимание, что объявление зависимостей - это сложный вопрос (независимо от того, какой язык вы используете), и пример, который я сделал, охватит только самые основы.