2016-04-21 4 views
0

В настоящее время у меня есть несколько настраиваемых плагинов maven, которые используют те же библиотеки (JAR), что и мое приложение, которое его использует. Уместно упомянуть, что библиотеки также являются специализированными библиотеками, разработанными нами, а не сторонними. Я хочу отпустить эти библиотеки и интегрировать их непосредственно в исходный код приложения - у меня есть одна проблема - что мне делать с плагинами maven, которые их используют. Есть ли способ использовать исходный код приложения (после интеграции библиотек) при компиляции/запуске плагинов maven?Пользовательские плагины и библиотеки Maven

+0

Вы хотите иметь один и тот же мультипроект: 1. код библиотеки 2. код плагина с использованием кода библиотеки 3. выполнение плагина? – michaldo

+0

Да. Это может показаться странным, но сохранение всех этих артефактов отдельно для одного приложения становится кошмаром - восстановление всего, поддержание версий и т. Д. - все это просто для того, чтобы поддерживать одно приложение, которое само по себе не слишком сложно. Я просто хочу, чтобы один проект поддерживался - вот и вся идея. – Abby

+1

Очистить. У меня такая же проблема в моем проекте. Моя концепция - это код библиотеки обтекания в 'java.util.function.Consumer' и создать общий плагин, который находит конкретный' Consumer' 'java.util.ServiceLoader' и запускает его. Но мне понадобится день или два, чтобы обеспечить регулярный ответ здесь. – michaldo

ответ

2

Лично я бы не пошел по этому пути из-за зависимости ад и т. Д., Но если вам действительно нужно, вы можете создать банку, содержащую исходные файлы (см. https://maven.apache.org/plugin-developers/cookbook/attach-source-javadoc-artifacts.html), а затем в проекте вам нужно будет распаковать его как источник это https://maven.apache.org/plugins/maven-dependency-plugin/examples/using-dependencies-sources.html.

ps: В чем причина отказа от библиотек и вместо этого использовать исходный код?

+0

А как насчет разных плагинов maven, которые используют одни и те же библиотеки? – Abby

+0

Вы можете выполнить трюк, как описано выше. Вы копируете банку в плагин maven, извлекаете его в исходный каталог в целевом объекте и включаете его в исходный путь компилятора. Чем вы можете продолжить нормальный процесс сборки. – uniknow

+0

Я понимаю. Но это будет означать, что я дублирую исходный код библиотек как в исходном коде приложения, так и в моем исходном коде плагинов (библиотеки, которые используются обоими из них). Это может звучать как глупый вопрос, но есть ли способ избежать этого? Эти плагины maven используются только для этого приложения. В принципе, я просто хочу сделать это приложение как можно более автономным. – Abby

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