переключение на градиент от maven для управления большим проектом osgi (> 200 пакетов)

У нас есть большой (~ 215 пакетов и их количество) проект osgi (felix + springdm), построенный с maven и maven-osgi плагин.

У нас есть несколько проблем с maven way:

1. подмодули pom должны наследоваться от родительского pom, чтобы использовать общие переменные и зависимости (это нормально), но тогда родительский pom должен включать все пакеты pom, чтобы иметь возможность собирать все вместе. Такой вид круговой ссылки значительно затрудняет синхронизацию всех данных.

2. индивидуальное управление версиями подбандлов было настолько сложным, что было решено (до того, как я присоединился к проекту) использовать одну и ту же версию для всех пакетов. Это означает, что теперь мы обновляем версии всех пакетов для каждого выпуска, даже если действительно изменилась только их часть. Это делает всю концепцию osgi немного бессмысленной ИМХО. Обратите внимание, что я не говорю, что мы продолжаем касаться только меньшинства пакетов, мы работаем над всеми из них, но каждый выпуск обычно содержит 1 или 2 функции, которые влияют только на некоторые пакеты.

3. чтобы выполнить пакет и развернуть последний артефакт, нам понадобится еще один подмодуль, который импортирует все пакеты, необходимые для развертывания (все, кроме нескольких, для тестов и моков). [отредактировано] Обратите внимание, что эта агрегация отличается от агрегации в основном pom, поскольку она не компилирует пакеты, а просто выбирает их из репозитория maven.

4. систему зависимостей maven и импорт плагина osgi иногда трудно согласовать. Слишком легко забыть об импорте или установить неправильную зависимость.

[отредактировано] В каждом пакете pom есть такой раздел: `

         
            org.apache.felix
            maven-bundle-plugin
            true
            
                
                    
                    
                    
                        com.google.gson,
                        org.apache.log4j,
                        org.apache.log4j.spi,
                        org.dom4j,
                        com.myinterfaces
                    
                
            
        `

По всем этим причинам мы в порядке, но не совсем довольны maven. Недавно кто-то предложил Gradle не как панацею, а как определенное улучшение текущей ситуации.

Вы бы порекомендовали перейти на Gradle? и в случае, какой был бы лучший способ?

Кто-нибудь еще сталкивался с такой же ситуацией? Я думаю, что это должно быть общим для всех больших проектов с Osgi.

Отказ от ответственности: я искал похожие вопросы, например:

Buildr, Gradle или ждать Maven 3?

Ищете хорошую среду разработки для пакетов OSGi

Maven: OSGI, связки и многомодульные проекты

, но либо о подмодулях osgi, либо о gradle.

14
задан Community 23 May 2017 в 12:25
поделиться