2012-06-25 3 views
1

У меня есть проект в eclipse (назовем его проектом A), который является проектом Maven. Это библиотека, которая используется другими проектами.Build Maven JAR в зависимости от локального проекта

И у меня есть проект B, который также является проектом Maven, и это зависит от проекта A. В pom.xml проекта B я добавил проект ссылки зависимостей A, и он отлично строится и отлично работает от Eclipse.

Теперь я хочу создать исполняемый JAR из проекта B. Раньше я делал это, добавляя плагин maven-assembly-plugin к pom.xml и затем запуская mvn assembly:single из командной строки.

При запуске mvn assembly:single команды в рамках проекта Б она выдает сообщение об ошибке сказав, что не может найти проект А.

Теперь то, что было бы лучшим способом создать исполняемый файл JAR для B? Есть ли способ создать его из Eclipse (и, по-видимому, он будет обрабатывать ссылки зависимостей, как он это делал), или есть способ сказать Maven, что проект A является локальным, и он должен строить проект B с использованием локального проекта A.

+2

Вы установили проект A, используя команду 'install' Maven? – rolve

+0

Я никогда не слышал об этой команде, теперь я ищу пример использования –

+0

http://stackoverflow.com/questions/574594/how-can-i-create-an-executable-jar-with-dependencies-using-using- Maven видеть эту ссылку я думаю, что это может помочь .. – Sourav

ответ

2

При использовании проекта Maven в качестве зависимости вне Eclipse вы должны сначала установить его в локальный репозиторий. Вы можете сделать это с помощью команды install:

установки: установить пакет в локальный репозиторий, для использования в качестве зависимости в других проектах локально

Эта цитата из Maven in 5 Minutes учебника.


«Проблема» в том, что Eclipse будет строить проекты Maven со своим внутренним компилятором, как и любой другой проект. Поскольку зависимости Maven сопоставляются с нормальными зависимостями Eclipse для этого, у вас нет install ваших проектов. Однако, как только вы на самом деле используете Maven для их создания (даже в Eclipse), вы это делаете.

+0

Все примеры установки, похоже, указывают на файл JAR, значит ли это, что мне нужно вручную построить проект A сначала и указать затем установить A внутри B. Может ли maven не знать, чтобы построить A, а затем построить B? –

+1

Нет. Вся информация, которую Maven имеет, заключается в том, что у вас есть зависимость от какого-либо проекта с определенной группой, именем и версией. Если он не находит его в локальном репозитории (на вашем компьютере), в стандартном репозитории (Maven Central) или в каком-либо дополнительном репозитории, настроенном в файле POM, он не знает, что делать. – rolve

+1

Итак, да, вы просто первый проект 'install', а затем можете построить проект B. – rolve

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