Atualmente, estou no processo de mudar algum projeto do Ant para o Maven. Conformista como sou, quero usar convenções bem estabelecidas para encontrar groupId
e artifactId
, mas não consigo encontrar convenções detalhadas (existem algumas, mas elas não cobrem os pontos que estou pensando).
Tome este projeto, por exemplo, primeiro o pacote Java: com.mycompany.teatimer
O cronômetro do chá é na verdade duas palavras, mas as convenções de nomenclatura de pacotes Java proíbem a inserção de sublinhados ou hífens, por isso estou escrevendo tudo isso junto.
Eu escolhi o groupId
idêntico ao ID do pacote porque acho uma boa ideia. É isso?
Finalmente, eu tenho que escolher um artifactId
, eu fui no momento teatimer
. Mas quando eu olhar para outros projetos Maven, eles usam hífens para dividir palavras artifactId
s, como este: tea-timer
. Mas parece estranho quando concatenado com o groupId
: com.mycompany.teatimer.tea-timer
.
Como você faria isso?
Outro exemplo:
Nome do pacote: com.mycompany.awesomeinhouseframework
groupId
: com.mycompany.awesomeinhouseframework
(?)
artifactId
: awesome-inhouse-framework
(?)
fonte
Respostas:
Sua convenção parece ser razoável. Se eu estivesse procurando sua estrutura no repositório Maven, procuraria
awesome-inhouse-framework-x.y.jar
nocom.mycompany.awesomeinhouseframework
diretório de grupos. E eu o encontraria de acordo com sua convenção.Duas regras simples funcionam para mim:
fonte
A estranheza é altamente subjetiva, apenas sugiro seguir a recomendação oficial:
fonte
package
? Qual a diferença para groupId?Considere o seguinte como para criar o primeiro aplicativo básico do Maven :
groupId
artifactId
version
fonte
com.my.company.project
comogroupId
oucom.client.company.project
?No entanto, eu discordo da definição oficial do Guia de convenções de nomenclatura em groupId, artifactId e versão que propõe que o groupId deve começar com um nome de domínio invertido que você controla.
com
significa que esse projeto pertence a uma empresa eorg
significa que esse projeto pertence a uma organização social. Tudo bem, mas para domínios estranhos como xxx.tv, xxx.uk, xxx.cn, não faz sentido nomear o groupId iniciado com "tv.", "Cn.", O groupId deve fornecer as informações básicas do projeto e não do domínio.fonte
myuser
e seu repositório será chamadomyrepo
. Basta usar o nome do pacotecom.github.myuser.myrepo
. Isso é gratuito e ainda único.Considere isso para obter um arquivo jar totalmente exclusivo:
fonte