Image

Imageyoofik wrote in Imageru_java

Categories:

Вопрос про Maven и автоматическое перестроение зависимостей

Привет,

Есть такой проект
parent-pom
  module-a
  module-b
  module-c


Внутри module-a прописано также так:
<dependency>
    <groupId>com.acme</groupId>
    <artifactId>module-c</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>


Так вот, хочется, находясь внутри module-a, сказать mvn clean package и тут чтобы в Maven (3.x версии) включились мозги и он в соответствии с ними сначала сам сбилдил module-c и обновил его в локальном репозитории, а уже затем пытался билдить module-a и резолвить его зависимости.

Сейчас, не смотря на этот SNAPSHOT, ничего такого я сделать не смог. Не помогает даже -amd, ничего он не пытается билдить. И если в репозитории уже лежит module-c=1.0-SNAPSHOT, он забывая про локальные изменения в нем, просто возьмёт старую версию.

На TeamCity я это обошёл, путем генерации версии на основе build number и передачи его через -D в мавен. Но вот при локальной разработке это все еще создает некоторые трудности.

Я подозреваю, что я просто не прочитал Maven Book какой-нибудь и не понимаю банальных вещей. Хочется спросить у знающих людей, как всетаки делает такая простая штука? В нашем проекте module-c это просто код, который мы не ходим дублировать в каждом модуле, хотим чтобы он лежал в одном месте и цеплялся в зависимые модули автоматически сам. Не обязательно даже чтобы он пытался его загружать в репозиторий, а потом скачивал оттуда, просто пусть каждый раз билдит его локально.

Заранее спасибо.
PS. Всем привет, кого давно не видел :)