Quali sono alcune convenzioni di directory aggiuntive per i progetti Maven?
-
22-08-2019 - |
Domanda
Maven 2 utilizza un layout di directory standard per i progetti, documentati qui:
http: //maven.apache .org / guide / introduzione / introduction-to-the-normale-directory-layout.html
Quello che mi chiedo è: Ci sono convenzioni consigliate per altri progetti, oltre alla biblioteca plain-vanilla Java, Java EE e progetti WebApp? In particolare, dove collocare i file di formiche, avviare gli script, i file di configurazione, applicazioni di esempio, ecc.
Inoltre, ciò che è la convenzione per l'immissione di file al di fuori dell'albero src / directory? Ad esempio, è comune a porre la documentazione in doc / (come fratello di src)?
C'è una pagina in cui vengono compilate queste convenzioni? In caso contrario, possono altri lettori fornire esempi dai loro progetti?
Soluzione
Non credo che ci sia una disposizione ufficiale per le applicazioni desktop, ma questo è il layout che usiamo per i nostri.
- src / main / config -. File di configurazione, copiati e filtrato per $ {} project.build.directory / config
- src / main / scripts - sh, pipistrello, README ed altri file di testo che vengono copiati e filtrati a $ {} project.build.directory .
- src / main / bin -. I file binari che sono non filtrato e copiato in $ {} project.build.directory
- src / main / build -. Tutti gli script aggiuntivi, file di formiche, o le risorse utilizzate dal processo di compilazione ma non inclusi nella domanda
- src / main / assemblaggio - descrittore di montaggio per creare gruppo di applicazione .
- Copia dipendenze a $ {} project.build.directory / lib utilizzando plugin di Maven-dipendenza.
- I punti di bonus se si utilizza un barattolo descrittore assembly condiviso che include la configurazione e lib insieme ai tipi di file standard per condividere con tutti i vostri progetti. Un buon set di tipi di file di default per includere è .sh, .bat, .exe e con i permessi eseguibili; .jar, .zip, .txt, .pdf, .xml, .properties, .conf, .ico, .png, .jpg con permessi standard.
- Aggiungi cartella config e lib / prefisso al classpath utilizzando il plugin Maven-vaso per fare un barattolo eseguibile.
- Aggiungi un profilo di installazione che crea un insieme di l'applicazione utilizzando il plugin Maven-assemblaggio e il descrittore di assemblaggio. Questo gruppo può quindi essere consumato da un progetto di installazione separato, se necessario.
- Evitare di mettere niente altro al src / livello. Invece mettere documentazione presente all'interno della src / site / directory (ad es. Src / site / sfinge) o src / doc se si ha realmente bisogno.
- Mettere tutta la configurazione di cui sopra in un genitore / pom aziendale per condividere con tutti i vostri progetti. Semplicemente riferimento il Maven-dipendenza, Maven-risorse, Maven-vaso, e plugin Maven-assemblaggio in voi progetto di costruzione di un'intera applicazione con quasi nessuna configurazione (non dimenticare di impostare la principale classe per il plugin Maven-jar) .
Altri suggerimenti
La cartella principale metto file di configurazione supplementari è sotto src / main / java / risorse. Di solito ho creato sub directory là sotto. I test possono avere i propri file di configurazione src / test / risorse.
È possibile utilizzare le direttive nella sezione build del pom.xml per specificare risorse aggiuntive directory e dove copiare i file su luoghi specifici nella directory di destinazione. Di solito una convenzione si pone per la lingua o di un quadro che si sta tentando di utilizzare. Nel qual caso il disastro può essere nascosto in un pom.xml genitore