Ich bin gerade dabei, ein Projekt von Ant nach Maven zu verlegen. Konformist wie ich bin, möchte ich gut etablierte Konventionen verwenden, um groupId
und zu finden artifactId
, aber ich kann keine detaillierten Konventionen finden (es gibt einige, aber sie decken nicht die Punkte ab, über die ich mich wundere).
Nehmen Sie dieses Projekt zum Beispiel zuerst das Java-Paket: com.mycompany.teatimer
Tea Timer besteht eigentlich aus zwei Wörtern, aber die Namenskonventionen für Java-Pakete verbieten das Einfügen von Unterstrichen oder Bindestrichen, daher schreibe ich alles zusammen.
Ich habe die groupId
identische mit der Paket-ID gewählt, weil ich das für eine gute Idee halte. Ist es?
Schließlich muss ich eine auswählen artifactId
, für die ich mich gerade entschieden habe teatimer
. Aber wenn ich mir andere Maven-Projekte ansehe, verwenden sie Bindestriche, um Wörter in artifactId
s zu teilen , wie folgt : tea-timer
. Aber es sieht seltsam aus, wenn es mit dem verkettet wird groupId
: com.mycompany.teatimer.tea-timer
.
Wie würdest du das machen?
Ein anderes Beispiel:
Paketnamen: com.mycompany.awesomeinhouseframework
groupId
: com.mycompany.awesomeinhouseframework
(?)
artifactId
: awesome-inhouse-framework
(?)
quelle
Antworten:
Ihre Konvention scheint vernünftig zu sein. Wenn ich im Maven-Repo nach Ihrem Framework suchen würde, würde ich
awesome-inhouse-framework-x.y.jar
imcom.mycompany.awesomeinhouseframework
Gruppenverzeichnis danach suchen . Und ich würde es dort gemäß Ihrer Konvention finden.Für mich funktionieren zwei einfache Regeln:
quelle
Seltsamkeit ist sehr subjektiv, ich schlage nur vor, der offiziellen Empfehlung zu folgen:
quelle
package
? Was ist der Unterschied zu groupId?Beachten Sie beim Erstellen der ersten Maven- Basisanwendung Folgendes :
groupId
artifactId
version
quelle
com.my.company.project
alsgroupId
oder verwendencom.client.company.project
?Ich bin jedoch nicht einverstanden mit der offiziellen Definition des Leitfadens für Namenskonventionen für Gruppen-ID, Artefakt-ID und Version, in der vorgeschlagen wird, dass die Gruppen-ID mit einem umgekehrten Domänennamen beginnen muss, den Sie steuern.
com
bedeutet, dass dieses Projekt einem Unternehmen gehört undorg
dass dieses Projekt einer sozialen Organisation gehört. Diese sind in Ordnung, aber für diese seltsamen Domänen wie xxx.tv, xxx.uk, xxx.cn ist es nicht sinnvoll, die mit "tv.", "Cn." Begonnene groupId zu benennen. Die groupId sollte die grundlegenden Informationen liefern des Projekts eher als die Domäne.quelle
myuser
und Ihr Repository aufgerufen. Verwenden Siemyrepo
dann einfach den Paketnamencom.github.myuser.myrepo
. Das ist kostenlos und immer noch einzigartig.Betrachten Sie dies, um eine vollständig eindeutige JAR-Datei zu erhalten:
quelle