Obecnie jestem w trakcie przenoszenia projektu z Ant do Maven. Konformistyczny, tak jak ja, chcę używać ustalonych konwencji do wyszukiwania groupId
i artifactId
, ale nie mogę znaleźć żadnych szczegółowych konwencji (są pewne, ale nie obejmują one kwestii, o których zastanawiam się).
Weźmy na przykład ten projekt, najpierw pakiet Java: com.mycompany.teatimer
Licznik czasu herbaty to tak naprawdę dwa słowa, ale konwencje nazewnictwa pakietów Java zabraniają wstawiania znaków podkreślenia lub łączników, więc piszę to wszystko razem.
Wybrałem groupId
identyczny z identyfikatorem pakietu, ponieważ uważam, że to dobry pomysł. Czy to jest
Wreszcie muszę wybrać artifactId
, na który obecnie poszedłem teatimer
. Ale kiedy patrzę na innych projektów Maven, używają myślniki rozdzielić słowa artifactId
s, tak: tea-timer
. Ale to wygląda dziwnie, gdy dołączona do groupId
: com.mycompany.teatimer.tea-timer
.
Jak byś to zrobił?
Inny przykład:
Nazwa paczki: com.mycompany.awesomeinhouseframework
groupId
: com.mycompany.awesomeinhouseframework
(?)
artifactId
: awesome-inhouse-framework
(?)
źródło
Odpowiedzi:
Twoja konwencja wydaje się rozsądna. Gdybym szukał twojego frameworka w repozytorium Maven, szukałbym
awesome-inhouse-framework-x.y.jar
wcom.mycompany.awesomeinhouseframework
katalogu grup. I znajdę to tam zgodnie z twoją konwencją.Działa dla mnie dwie proste zasady:
źródło
Dziwność jest wysoce subiektywna, proponuję tylko przestrzegać oficjalnej rekomendacji:
źródło
package
? Jaka jest różnica w stosunku do groupId?Zastanów się, jak zbudować podstawową pierwszą aplikację Maven :
groupId
artifactId
version
źródło
com.my.company.project
jakogroupId
lubcom.client.company.project
?Nie zgadzam się jednak z oficjalną definicją Przewodnika po konwencjach nazewnictwa dla groupId, artefactId i wersji, która sugeruje, że groupId musi zaczynać się od kontrolowanej przez ciebie odwróconej nazwy domeny.
com
oznacza, że ten projekt należy do firmy iorg
oznacza , że ten projekt należy do organizacji społecznej. Są w porządku, ale dla tych dziwnych domen, takich jak xxx.tv, xxx.uk, xxx.cn, nie ma sensu nazywać nazwy grupy, która zaczęła się od „tv”, „cn.”, Grupa powinna dostarczyć podstawowe informacje projektu, a nie domeny.źródło
myuser
i Twoje repozytorium jest wywoływanemyrepo
, a następnie po prostu użyj nazwy pakietucom.github.myuser.myrepo
. To nic nie kosztuje i wciąż jest wyjątkowe.Rozważ to, aby uzyskać w pełni unikalny plik jar:
źródło