Как правильно импортировать зависимость Maven, которую я изменил и перестроил в существующий проект? - PullRequest
2 голосов
/ 06 августа 2020

У меня есть зависимость Maven, pulsar-log4j2-appender , которую я раздвоил и изменил исходный код, потому что в моем проекте возникали исключения.

После изменения исходного кода Я запустил команду maven package, чтобы создать банку и импортировал ее в свой проект (в Intellij: Project Structure | Modules | Dependencies | Add JARs or directories...).

Однако, когда я запускаю приложение, кажется, что он не может найти эту зависимость потому что приложение Pulsar, которое я объявил в своем файле log4j2. xml, не настраивается.

Правильно ли я импортирую JAR? Мне интересно, должен ли JAR находиться в пространстве имен org.apache.pulsar для правильного импорта.

Например,

Так выглядит зависимость без изменений:

enter image description here

And this is what it looks like when I modify and build it myself:

введите описание изображения здесь

1 Ответ

0 голосов
/ 06 августа 2020

Если вы изменяете код из проекта с открытым исходным кодом, вы должны изменить как groupId, так и идентификатор артефакта. Если вы этого не сделаете, у вас возникнут проблемы, и будущие разработчики будут называть ваше имя способами, которые вы не хотите слышать.

Изменение необходимо, чтобы Maven знал, что использовать вашу версию вместо общедоступной. Кроме того, когда люди смотрят на ваш проект и видят groupId и artifactId из «реального» проекта, они, естественно, предполагают, что это то, что используется (вот почему они проклянут вас, если это не так). Кроме того, вам нужно будет сделать что-то запутанное, чтобы Maven мог надежно использовать вашу зависимость.

Практика, которой я придерживался, - это добавление com.mycorp, где mycorp - это имя моего работодателя, к groupId и добавьте mycorp в artifactId. Единственным недостатком этого является то, что вы должны убедиться, что координаты «реального» артефакта не упоминаются как зависимость или транзитивная зависимость, иначе у вас будут дублирующиеся классы на пути к классам.

Наконец, ваше лучшее Ставка состоит в том, чтобы создать пул-реквест для Apache Pulsar с вашим исправлением, чтобы другие люди, столкнувшиеся с той же проблемой, получили от него пользу.

...