Обязательно ли иметь имена пакетов, совпадающие с идентификатором группы артефакта проекта? - PullRequest
0 голосов
/ 20 марта 2020

У меня есть проект maven, pom которого выглядит следующим образом:

<groupId>com.example.check</groupId>
  <artifactId>first-project</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

В этом проекте src/main/java, где будет находиться весь Java исходный код.

Обязательно ли этот пакет имена должны совпадать с именами artifactId в pom: com/example/check.

Можем ли мы дать другое имя пакета, например: abc/xyz/check.

Как package name относится к pom's artifactId. Какая связь между ними?

Ответы [ 2 ]

2 голосов
/ 20 марта 2020

Нет, мавену все равно. Это просто двоичный двоичный объект, который обычно имеет особое значение для Java.

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

1 голос
/ 20 марта 2020

Это не обязательно.

Однако существуют соглашения, которым люди склонны следовать. Согласно документации Maven об именах:

Идентификатор группы должен соответствовать правилам Java для имен пакетов. Это означает, что он начинается с обратного доменного имени, которым вы управляете. Например, org. apache .maven, org. apache .commons

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

Java имена пакетов являются произвольными, если вы соблюдаете синтаксис языка. См. официальную Oracle документацию здесь .

В отношении artifactId, опять же, это может быть что угодно.

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