springframework - spring web security maven




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

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

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

«Какое бы имя вы ни выбрали, строчными буквами и без странных символов»

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

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

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


Для начала приведу несколько постов на эту тему:

указатели

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

Затем я бы предложил вам НЕ использовать groupId в вашем artifactId. Это избыточно;).

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

Соглашения об именовании Sonatype

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

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

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

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


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

Кроме того, я нашел несколько подсказок об артефакте here .







archiva