Подтвердить что ты не робот

Лучшие практики в соглашениях об именах на Maven artifactID (есть ли ограничение?)

Моя команда новичок в Maven, и мы не смогли найти окончательного руководства по выбору артефактов для наших проектов.

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

"любое имя, которое вы хотите, с строчными буквами и не странными символами"

но некоторые люди в моей группе хотят использовать стиль обратного доменного имени для идентификаторов артефактов и.

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

Каковы правила, если таковые имеются, для символов, разрешенных в артефактах Maven?

4b9b3361

Ответ 1

В качестве начинающих здесь есть несколько сообщений, посвященных этому вопросу:

Указатели

И на переполнение стека!

Тогда я предлагаю вам НЕ использовать groupId в вашем артефакте. Это избыточно;).

Я цитирую документы сонатипа, которые, по-видимому, наиболее актуальны для вашего вопроса:

Соглашения об именах сонат

groupId однозначно идентифицирует ваш проект во всех проектах, поэтому нам необходимо обеспечить соблюдение схемы именования. Он должен следить за пакетом правила имени, что означает, что это должно быть как минимум как доменное имя, которое вы и вы можете создать столько подгрупп, сколько захотите. например. org.apache.maven, org.apache.commons     Хорошим способом определения гранулярности groupId является использование структуры проекта. То есть, если текущий проект является множественным модуля, он должен добавить новый идентификатор родительского идентификатор_группы.     например. org.apache.maven, org.apache.maven.plugins, org.apache.maven.reporting

artifactId - это имя флага без версии. Если вы создали его, вы можете выбрать любое имя с строчными буквами и никаких странных символов. Если это сторонняя банка, вы должны принять название банки, как она распространяется .eg. maven, commons-math

версия, если вы его распространяете, вы можете выбрать любую типичную версию с числами и точками (1.0, 1.1, 1.0.1,...). Не использовать даты поскольку они обычно связаны с SNAPSHOT (ночными) сборками. Если это артефакт третьей стороны, вы должны использовать их номер версии это так же странно, как может выглядеть. 2.0, 2.0.1, 1.3.1

Таким образом, используя обратные DNS в вашей группе И И имя вашего пакета является хорошей оценкой. Использовать их снова в artifactId нет.

Ответ 2

Я бы сказал, что groupId похож на имя пакета в Java, где artifactId похож на имя класса (на самом деле не совсем), но я думаю, что есть отношение к имени класса. В Maven вы обычно указываете название модуля/проекта, в частности, artifactId.

Кроме того, я нашел несколько советов о artifactId здесь.