Frage

Unter der Annahme, dass wir ein Projekt mit dem Namen project und Module module1 und module2 haben, früher neige ich dazu, die folgende Benennungsstrategie zu verwenden:

-- project
  -- projectModule1
  -- projectModule2

Jetzt benutze ich einen anderen:

-- project
  -- project-module1
  -- project-module2

Was sind Best Practices für Maven Module Benennung?

War es hilfreich?

Lösung

Ich schrieb dazu einige Noten in dem „Effektiven Implementation“ Buch, aber es gibt keine Regel oder kanonische Konvention.

einige Fassen wir zusammen:

Zunächst einmal die wichtigsten Dinge ist, dass Sie konsistent sind.

Allgemeine Maven Konvention verwendet '-'. Als Trennzeichen (commons-lang, maven-model)

Wenn Sie beabsichtigen, es extern genutzt werden, erinnere mich an die module = artifact ID = filename (Best Practice), so muss es erkennbar sein (maven-model-2.0.jar klar ist, model-2.0.jar nicht ist). In diesem Fall wiederholen Sie in der Regel das letzte Element der Gruppen-ID als Mini-Namespace. „Intern“ Module weglassen kann es aus Gründen der Kürze (Als Beispielanwendung zeigt: http: //github.com/brettporter/centrepoint/tree/master/centrepoint/modules/ ).

Abgesehen davon, dass ich sie so kurz wie möglich halten würde.

Sie können die Parallele zwischen Java-Paket und Klassennamenskonventionen zu Maven Gruppe und Artefakt-IDs ziehen.

Andere Tipps

Ich versuche normalerweise Modulnamen kurz zu halten. Wenn der Name ‚will‘ lang sein, das ist ein Hinweis darauf, dass eine andere Verschachtelungsebene ist wahrscheinlich eine gute Idee. Anstatt also folgendermaßen aus:

- root
    - api
    - impl
    - security
    - service-soap
    - service-rest
    - client-swing
    - client-web-html
    - client-web-mobile

Ich würde Nest Dinge weiter:

- root
    - api
    - impl
    - security
    - service
        - soap
        - rest
    - client
        - swing
        - web
            - html
            - mobile

durch maven Reaktor Optionen können Sie immer noch die verschachtelte Module von oben isoliert bauen:

mvn -pl client/web clean install

Sie können sogar noch einen Schritt weiter gehen:

-- project
  -- project-module-1
  -- project-module-2

Kein Scherz jetzt, das ist wirklich eine Frage des Geschmacks.

Haben Sie einen schönen Tag Maksim

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top