Мой проект Java имеет зависимость от сторонней библиотеки, назовем его xyz.jar. Мой проект поддерживается в git и xyz в svn. xyz включен в мой проект как зависимость Maven, так что он автоматически загружается как часть процесса сборки.Сохранение исправлений сторонних зависимостей библиотеки Java
Мне нужно внести небольшие изменения в источник xyz, но все же хотите получать обновления от разработчиков проекта. Какие у меня варианты?
В настоящее время, лучший вариант, как представляется, это:
- форк СВН репо для АБВ в новый мерзавца репо с использованием
git svn clone
. - Взломать git репо.
- Создайте xyz-hacked.jar из git repo и экспортируйте артефакт на сервер библиотеки maven.
Когда новые изменения выходят за xyz, я могу сделать git svn rebase
, чтобы сохранить актуальность моего git repo.
Каковы лучшие практики здесь? Могу ли я улучшить этот подход?
Редактировать
Я знаю, что будет некоторые ручной работы, связанной, например, разрешение конфликтов слияния и обеспечение совместимости моих патчей с последним xyz. Я не ищу общее автоматическое решение для слияния кода. Я пытаюсь выяснить, какие лучшие практики и инструменты находятся в этой ситуации.
Gradle
Я не думаю, что это Gradle-конкретный вопрос, но только в том случае, если есть Gradle-конкретный ответ: Я использую Gradle включить xyz.jar как «компилировать» зависимость.
Возможно, вы просто попробуете и предложите свою модификацию для сопровождающих/записи библиотеки XYZ? конечно, если что-то вам полезно, это может быть полезно для других. – radai
Hi, radai. Я определенно рассмотрел это и, вероятно, сделаю это в конце концов. Моя основная проблема заключается в том, что в краткосрочной перспективе мне понадобится решение для костылей, пока мои изменения ждут одобрения. –
Возможный дубликат [Поддержание пользовательских патчей на стороннем коде] (http://stackoverflow.com/questions/14397188/maintaining-custom-patches-on-third-party-code) – lesmana