2009-06-04 11 views
13

Esiste la procedura consigliata per la memorizzazione dei file di configurazione in un progetto Java. Il tipo di file è un file di proprietà Java in questo caso, ma io uso altri tipi di file in altri progetti.Qual è la procedura migliore per l'ubicazione dei file di configurazione dell'applicazione Java?

La raccomandazione potrebbe variare da applicazione standalone (.jar) a web app (.war)?

+0

Si desidera poter modificare la configurazione dopo aver creato una build o si desidera che la configurazione faccia parte del file .jar/.war costruire? – ScArcher2

+0

@ ScArcher2, per la nostra versione di produzione da queste parti abbiamo fatto richieste di rilascio, quindi la modifica del file di configurazione è tanto problematica quanto l'intero file del pacchetto. Quindi sono arrivato a preferire mantenere la configurazione nel pacchetto –

risposta

8

vi accorgerete che molti i progetti open source seguono lo directory structure used by Maven. In questa configurazione il codice sorgente dell'applicazione è conservato in src/main/java, risorse dell'applicazione, inclusi i file delle proprietà, in src/main/resources e altri file di configurazione in src/main/config. I file relativi ai test unitari utilizzano una struttura di directory simile; src/test/java e src/test/risorse.

Personalmente tendo ad usare questo layout a causa del suo uso diffuso. Mantengo anche una directory "etc" sotto la root del progetto per ospitare i file che non sono direttamente correlati all'applicazione. Ad esempio, tengo i file di configurazione per PMD e Checkstyle in ecc.

4

In generale una pratica comune è quella di avere una directory resources per i file di configurazione che viene copiata nel build build dal processo di compilazione. Maven usa questo nel suo default project structure. All'interno della directory resources, potresti anche avere una directory META-INF e/o una directory WEB-INF in un'applicazione imballata come guerra.

1

io uso:

  • META-INF/ per vaso file
  • WEB-INF/ per guerra file
+0

È meta-inf sul percorso di classe predefinito? –

Problemi correlati