Maven POM, который удаляет проприетарные источники из проприетарных модулей - PullRequest
0 голосов
/ 22 декабря 2011

У меня многомодульный проект, который в основном с открытым исходным кодом, но имеет один модуль (компилятор), который является проприетарным, поэтому его папку src / main / java необходимо удалить перед выпуском. Запатентованные модули создают запутанный jar, который используется другими модулями, которым необходимо вызывать компилятор из исходного jar для сборки всего остального в релизе. Одним из них является mojo, который используется для компиляции остальной части системы. Поэтому после удаления проприетарных источников мне нужно запустить работающий mojo, чтобы пользователи могли компилировать непатентованные части системы, используя только двоичные запутанные jar-файлы компилятора.

Назовите проприетарный модуль "compiler" и запутанный jar, который он создает, "compiler.jar". Я думаю, что мне нужен другой модуль, "compiler-bin", с "compiler.jar" в качестве зависимости, который добавляет compiler.jar в репозиторий с новым именем, "compiler-bin.jar", затем меняет все (mojo, и т.д.) зависеть от compiler-bin.jar вместо compiler.jar. Затем распределите, клонируя все дерево, вручную удалите исходный модуль компилятора, отрегулируйте вручную помпы, чтобы исправить поломку, и ...; это будет немало работы.

Я надеюсь на что-то более автоматическое, которое получит новую копию исходного дерева (со всеми источниками), чтобы создать дерево для распространения (за исключением собственных источников), которое можно построить без дальнейшей ручной подстройки.

Ответы [ 2 ]

0 голосов
/ 28 февраля 2012

Обнаружил, что плагин сборки maven безнадежно сложен, а затем нашел лучший способ.

Я просто создаю ветку svn на основе освобождаемой нами ветки, затем удаляю ненужные папки в ветке, сохраняя их вбагажник.Затем протестируйте, настройте все, что нужно настроить (например, удалите дочерние ссылки в родительских poms).Затем присвойте ветви номер релиза maven (избегая плагин релиза maven как слишком хрупкий и сложный) с версиями mvn: set -DnewVersion = что угодно.Зафиксируйте ветку, загрузите результаты сборки и все готово.

0 голосов
/ 22 декабря 2011

Если вам нужна специальная упаковка для ваших артефактов, вам придется создать собственную сборку, используя maven-assembly-plugin.

Посмотрите здесь пример -> https://stackoverflow.com/a/7838060/185722

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...