2015-10-08 2 views
-1

У меня есть проект Maven, который содержит несколько разделяемых классов для двух других проектов (один проект Java SE SE и один Android-проект).Внешние зависимости Maven - Nexus не опция

Мне нужно упаковать эту общую банку в другие проекты, когда я делаю сборку.

Теперь я знаю о Nexus, но я работаю без доступа к общей установке.

Единственный вариант включить общую банку как часть проектов maven/gradle в src/main/resources, например?

+0

Вы можете использовать maven local с областью ваших зависимостей, установленной в системе. см. здесь: https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html –

+0

почему downvotes? – PDStat

+0

Не я. Но я предполагаю, что это произошло потому, что вы не предоставили гораздо больше деталей, как ваши конфигурации проектов. –

ответ

1

Лучшим ответом является размещение собственного внутреннего репозитория хоста. См. here для получения более подробной информации. Мы используем SonaType Nexus.

Однако вы можете просто положиться на свое «местное репо». Когда вы делаете mvn install, артефакты, которые вы создаете, размещаются в вашей локальной файловой системе, как правило, в ~/.m2/repository. См. Ваш Maven settings.xml для точного местоположения.

Итак, если вы всегда создаете свой общий код сначала с mvn clean install, общие артефакты будут доступны, если вы используете mvn clean install в проектах, которые его используют. Конечно, это будет означать, что артефакты не публикуются и остаются локальными для вашего сервера сборки или локальной машины. Это немного ухудшает функцию управления зависимостями Maven.

+0

Как я уже говорил, Nexus на данный момент не является опцией, и полагаться на локальную файловую систему не так хорошо, как на общий проект. Думаю, я просто добавлю банку в качестве управляемого ресурса в проекте git, как я уже говорил – PDStat

+0

Существуют и другие варианты. См. [Здесь] (https://maven.apache.org/guides/introduction/introduction-to-repositories.html). Обратите внимание, что до тех пор, пока файл доступен по URL-адресу, например 'file: //' или 'http: //', на самом деле не имеет значения, как вы делаете файлы доступными. Вы можете использовать обычный веб-сервер или удаленное монтирование файловой системы. – sh0rug0ru

+0

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