Это то, что я нахожу очень сложным с maven и внутренними проектами; у вас есть две системы управления версиями (maven, что, прямо скажем, не очень хорошо) и система контроля исходного кода (которая, предполагая, что она CVS или лучше, поддерживает реальный рабочий процесс).
Вот как мы это делаем:
report --depends on--> core
web --depends on--> core
Мы используем заглушку Maven:
Отчет POM, в процессе разработки, будет иметь версию SNAPSHOT, соответствующую тому, что находится в ядре ядра. Я делаю mvn clean install
в ядре, затем я вижу эти изменения в report
в моей локальной среде.
Когда я делаю релиз отчета, я должен сначала выпустить ядро через плагин релиза maven. Когда я использую его на ядре, он просит меня установить версию ядра для выпуска (то есть удалить -SNAPSHOT), на что я говорю да, и полученный выпущенный артефакт не зависит от выпуска SNAPSHOT. Когда плагин релиза завершен, pom отчета теперь зависит от следующего выпуска ядра SNAPSHOT (хотя вы можете переопределить это во время mvn release:prepare
, если хотите).
Разработчики в сети затем получают электронное письмо о том, что доступна новая версия ядра, и они могут использовать его, если пожелают. Наша политика заключается в том, что они должны обновляться перед выпуском.