2010-01-07 3 views
1

Реферат: Я ищу способ инструктировать maven для поиска зависимостей в целевых/классах вместо jar в локальном репозиториинайти зависимости в target/classes вместо локального репозитория?

Скажем, у меня есть 2 модуля, A и B, где A зависит от B. Оба являются перечисленные в модуле S. Обычно мне нужно запустить «mvn install» в S. Я ищу способ запустить «mvn compile», так что, когда A компилируется, его путь к классам будет содержать ../B/target/classes вместо ~/.m2/repository/com/company/b/1.0/b-1.0.jar.

(мой разум так, что я могу иметь непрерывную компиляцию без необходимости проходить через Packaing и установки, или, более точно, используйте «МВН SCALA: CC» на нескольких модулях)

ответ

1

Я не думаю, что это возможно без ужасного взлома, это просто не то, как работает maven. Maven использует двоичные зависимости и для их решения нужен локальный репозиторий. Таким образом, maven способ справиться с этим - запустить реактор на всех модулях. На всякий случай, посмотрите на Maven Tips and Tricks: Advanced Reactor Options.

Но во время разработки вы не можете просто импортировать все свои проекты в свою среду разработки и использовать «ссылки на проекты» (т. Е. Настроить ваши проекты в зависимости от исходного кода вместо JAR), как это делают большинство разработчиков Java? Это общий подход, чтобы не доводить до install артефакт, чтобы «видеть» изменения.

Если это невозможно, и если вы действительно не хотите артефактов install в свой локальный репозиторий, вам придется переместить свой код в уникальный модуль.

+0

«во время разработки вы не можете просто импортировать все свои проекты в свою среду разработки». К сожалению, это запрещает разработку в некоторых важных контекстах, таких как автоматизация и среды командной строки. Выполнение 'mvn install' в таких случаях намного медленнее, что значительно ухудшает поток итеративного процесса разработки. Есть ли обоснование для этого, кроме этого, «это просто не то, как работает maven»? –

1

Я знаю, что это раздражает. который помог мне здесь, определенно поддерживает IDE. eclipse и IntelliJ умны, чтобы собирать все зависимости после выполнения импорта maven-проекта. даже кросс-модульные зависимости компилируются в реальном времени.

Смежные вопросы