Получить путь к классам без установки проектов MavenJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Получить путь к классам без установки проектов Maven

Сообщение Anonymous »

У меня есть пара проектов maven с такой базовой структурой:

Код: Выделить всё

root
my-group:app
my-group:app-core, parent my-group:app
class Main
dependency foo:foo-lib
my-group:app-util, parent my-group:app
dependency bar:bar-lib
my-group:lib, parent my-group:lib-parent
dependency bar:bar-lib
У меня также есть зависимость my-group:lib-parent, установленная в моем .m2

Код: Выделить всё

.m2
my-group:lib-parent
dependency qux:qux-lib
У меня есть my-group:app и my-group:lib, извлеченные локально в моей IDE. Благодаря этому я могу обновлять вещи — как исходный код, так и зависимости — и они будут решены без необходимости устанавливать что-либо в .m2. Например, если я что-то изменю в my-group:lib - например. обновите версию bar:bar-lib - мне не нужно запускать весь трудоемкий цикл сборки, чтобы установить это в .m2.
Похоже, то же самое не работает из командной строки. mvn настаивает на том, чтобы сначала использовать то, что есть в .m2, и я не нашел способа указать ему использовать последнюю версию из проверенных источников.
Моя основная мотивация — избежать этих затрат, которые являются большим препятствием при итерации кода.
В этом случае все, что мне нужно, это запустить Main, который находится в my-group:app-core. Если есть решение, похожее на mvn dependency:build-classpath, которое сначала локальное, .m2-секундное, это должно работать.
Я не уверен, что другие системы сборки (например, gradle) позволят это, но даже если бы они это сделали, вероятно, это не сработало бы, потому что другие люди используют maven, поэтому мне придется поддерживать две системы сборки.
Есть ли способ заставить maven работать вот так? Если нет, есть ли что-нибудь еще, что может работать с pom.xml без изменений в проектах my-group:app или my-group:lib, которые будут работать таким образом? Если нет, есть ли у меня какие-либо варианты, которые, возможно, изменят эти проекты, но не таким образом, чтобы сделать синхронизацию обременительной (например, добавление некоторых несвязанных файлов может быть в порядке, но изменение pom.xml или сохранение эквивалентной копии для другого инструмента сборки, вероятно, нет)?
Я пытался использовать https://github.com/apache/maven-resolver, но то, что я пробовал до сих пор, либо очень хрупкое (например, не обрабатывает версии через свойства или управление зависимостями) или в любом случае требует установки в .m2, что противоречит цели.

Подробнее здесь: https://stackoverflow.com/questions/798 ... n-projects
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»