Публикация артефактов с исходниками в архиве
Вопрос
На работе я погружаюсь в управление зависимостями проекта с помощью maven.Мы используем Apache Archiva (1.2.1) в качестве локального репозитория и прокси.Я добавляю артефакт для проекта с открытым исходным кодом, который не опубликован ни в одном общедоступном репозитории.Я узнал, что публиковать источники Я должен используйте поле Классификатор на Загрузить артефакт страница.Затем источники перечисляются рядом с jar и pom, когда я просматриваю репозиторий.
Но когда я обновляю свои зависимости maven, я получаю из репозитория только jar и pom.Я заметил, что источники также отсутствуют, когда архив проксирует для меня загрузки из других публичных репозиториев.Я не нашел никаких параметров конфигурации на страницах администратора Archiva для обслуживания источников...Что мне не хватает?
Обновлять:Мне не хватало того факта, что исходники артефактов нужно загружать вручную.Т.е.клиент maven должен запросить их, что контролируется параметром командной строки -DdownloadSources=true
.Интеграция Maven для Eclipse имеет настройку, позволяющую всегда загружать их, как описано в разделе Разрешение источников артефактов.Затем Archiva обслуживает источники локальных артефактов или передает запрос в удаленные репозитории и кэширует источники для будущих запросов.
Решение
Archiva предоставляет исходники, но Maven по умолчанию не запрашивает их.Я знаю, поскольку я также использую Archiva в качестве репозитория Maven.Как вы запрашиваете исходники?
Если вы используете затмение
- Вы можете запустить
mvn eclipse:eclipe -DdownloadSources=true
в каталоге проекта; - вы можете установить Интеграция Maven для Eclipse.
Оба они должны вернуть исходники, если они доступны.
Другие советы
Источники не обязаны удовлетворять зависимости компиляции/время выполнения.Если вы хотите связать источники со своим приложением, вам следует указать зависимость с источником.Или вы можете использовать плагин, подобный сборке, чтобы получить их из архива.