Layout directory standard di Apache Maven

1. Introduzione

Apache Maven è uno degli strumenti di compilazione più popolari per i progetti Java. Oltre a decentralizzare le dipendenze e i repository, uno dei suoi aspetti importanti è anche la promozione di una struttura di directory uniforme tra i progetti.

In questo rapido articolo, esploreremo il layout di directory standard di un tipico progetto Maven.

2. Layout directory

Un tipico progetto Maven ha un file pom.xml e una struttura di directory basata su convenzioni definite:

└───maven-project ├───pom.xml ├───README.txt ├───NOTICE.txt ├───LICENSE.txt └───src ├───main │ ├───java │ ├───resources │ ├───filters │ └───webapp ├───test │ ├───java │ ├───resources │ └───filters ├───it ├───site └───assembly

Il layout di directory predefinito può essere sovrascritto utilizzando i descrittori di progetto, ma questo è raro e sconsigliato.

Andando avanti in questo articolo, scopriremo maggiori dettagli su ogni file e sottodirectory standard.

3. La directory principale

Questa directory funge da radice di ogni progetto Maven.

Diamo uno sguardo più da vicino ai file e alle sottodirectory standard che si trovano tipicamente alla radice:

  • maven-project / pom.xml - definisce le dipendenze ei moduli necessari durante il ciclo di vita di compilazione di un progetto Maven
  • maven-project / LICENSE.txt - informazioni sulla licenza del progetto
  • maven-project / README.txt - riassunto del progetto
  • maven-project / NOTICE.txt - informazioni sulle librerie di terze parti utilizzate nel progetto
  • maven-project / src / main - contiene il codice sorgente e le risorse che diventano parte del manufatto
  • maven-project / src / test - contiene tutto il codice e le risorse di test
  • maven-project / src / it - solitamente riservato ai test di integrazione utilizzati dal plugin Maven Failsafe
  • maven-project / src / site - documentazione del sito creata utilizzando il plug-in Maven Site
  • maven-project / src / assembly - configurazione dell'assembly per i binari di pacchettizzazione

4. La directory src / main

Come indica il nome, src / main è la directory più importante di un progetto Maven. Tutto ciò che dovrebbe essere parte di un artefatto, sia esso un barattolo o una guerra , dovrebbe essere presente qui.

Le sue sottodirectory sono:

  • src / main / java - codice sorgente Java per l'artefatto
  • src / main / resources - file di configurazione e altri come file i18n , file di configurazione per ambiente e configurazioni XML

  • src / main / webapp - per applicazioni web, contiene risorse come JavaScript, CSS, file HTML, modelli di visualizzazione e immagini
  • src / main / filters - contiene file che iniettano valori nelle proprietà di configurazione nella cartella delle risorse durante la fase di compilazione

5. La directory src / test

La directory src / test è il luogo in cui risiedono i test di ogni componente dell'applicazione.

Notare che nessuna di queste directory o file diventerà parte del manufatto. Vediamo le sue sottodirectory:

  • src / test / java - codice sorgente Java per i test
  • src / test / resources - file di configurazione e altri usati dai test
  • src / test / filters - contiene file che iniettano valori nelle proprietà di configurazione nella cartella delle risorse durante la fase di test

6. Conclusione

In questo articolo, abbiamo esaminato il layout di directory standard per un progetto Apache Maven.

Molti esempi di strutture del progetto Maven possono essere trovati nel progetto GitHub.