Позвольте Maven напрямую ссылаться на скомпилированные классы Java из другого проекта в стадии разработки - PullRequest
0 голосов
/ 14 мая 2018

У меня есть два отдельных проекта. Один (проект Б) должен зависеть от другого (проект А).

Project A
    |
     - module A1
     - module A2
     - module A3
     - module A4

Project B
    |
     - module B1
     - module B2
     - module A1  <---- from Project A
     - module A2  <---- from Project A

Сейчас, каждый раз, когда я изменяю проект А, мне нужно

  1. создайте банки и отправьте их в местный репозиторий Maven. (Поскольку проект А - это огромный проект, это занимает некоторое время)
  2. позволить проекту B обновить зависимости до проекта A

Это утомительно в режиме разработки.

Мне интересно, есть ли способ, позволяющий Maven в Project B напрямую ссылаться на скомпилированные классы Java, чтобы я мог пропустить шаг 1 в режиме разработки?

PS: Я посмотрел на ответ здесь , но это не то, что я хочу.

РЕДАКТИРОВАТЬ: Project A - это супер унаследованный проект, в котором Maven не настроен должным образом и по-прежнему полагается на Eclipse для управления всеми зависимостями, в то время как Project B имеет Maven, настроенный должным образом, и может собирать / компилировать / упаковывать полностью без любая помощь IDE.

Из-за некоторых бизнес-требований в настоящее время мы не хотим перенастраивать Maven для проекта A. Поэтому наличие нового родительского проекта как для проекта A, так и для проекта B, чтобы maven мог управлять зависимостями, немного затруднительно.

Мысли

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Вы можете попробовать Dynamic Code Evolution (DCEVM) с агентом горячей замены.У него есть несколько интересных функций.Он может генерировать файлы классов и будет влиять мгновенно.

0 голосов
/ 14 мая 2018

Вы можете создать родительский проект Maven (типа pom), а затем сделать оба ваших проекта A и B модулями этого проекта. Вы можете иметь один модуль для объявления другого как зависимости, и при построении родительского проекта оба модуля строятся в правильном порядке.

Сделать это довольно просто, используя Eclipse.

Кроме того, если вы импортируете оба проекта в Eclipse, то используются файлы классов, которые IDE только что скомпилировала (тем самым обходя локальное хранилище maven)

В противном случае вы можете использовать эту (устаревшую!) Настройку, чтобы импортировать банку из определенного места.

<dependency>
 <groupId>my1</groupId>
 <artifactId>my1</artifactId>
 <version>1.0</version>
 <scope>system</scope>
 <systemPath>C:/Users/myuser/.m2/repository/xx/asd/bnd/bndlib/2.1.0/bndlib-2.1.0.jar</systemPath>
</dependency>
...