2011-01-05 9 views
9

Sto tentando di applicare Maven a un progetto esistente che ha già una struttura di directory in posizione. Tutto quello che posso trovare dalla domanda precedente è il seguente.Uso di Maven utilizzando un layout di directory non standard

Maven directory structure

Tuttavia, il mio requisito è più dettagliata. Vedi sotto per la struttura di directory:

<root dir> 
    | 
    +--src-java 
    | 
    +--src-properties 
    | 
    +--WEB-INF 

so che avremmo potuto avere qualcosa di simile

<build> 
<sourceDirectory>src-java</sourceDirectory> 
... 
</build> 

Ma sourceDirectory è solo il codice sorgente di Java, se non mi sbaglio.

Per la struttura di cui sopra, come si dichiara in pom.xml? Spostare la directory è la mia ultima opzione al momento.

risposta

20

Immagino che sia necessario avere qualcosa di simile al di sotto.

Vedere WEB-INF, presumo che tu voglia costruire una guerra. Maven war plugin fa questo. Sarà necessario configurarlo un po 'poiché la struttura della cartella non è standard, ad esempio potrebbe essere necessario specificare la posizione di web.xml utilizzando la proprietà webXml. Questi sono documentati nel usage page.

<build> 
    <sourceDirectory>src-java</sourceDirectory> 
    ... 
    <resources> 
     <resource> 
     <directory>src-properties</directory> 
     </resource> 
    </resources> 
    ... 
    <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <configuration> 
        <warSourceDirectory>WEB-INF</warSourceDirectory> 
        ... 
       </configuration> 
      </plugin> 
    </plugins> 
</build> 
+1

risposta migliore (+1) –

+0

Yap, sono d'accordo. Questa è la risposta migliore e adatta alla mia situazione. Scommetto che non sono l'unico ad avere lo stesso problema. –

1
<resources> 
    <resource> 
    <directory>${project.basedir}/src/main/resources</directory> 
    </resource> 

Da here.

8

È possibile modificare la struttura di directory predefinita dichiarata nello Super POM sovrascrivendole nel pom.

Per il tuo esempio, ad es.

<sourceDirectory>src-java</sourceDirectory> 
<resources> 
    <resource> 
    <directory>src-properties</directory> 
    </resource> 
</resources> 

Maven copierà tutte le risorse nel file jar. Se si desidera includere WEB-INF nel jar, è consigliabile spostarlo nella directory delle risorse specificata. Altrimenti devi copiarlo da solo (con i plugin di Maven) nella directory di destinazione - suppongo.

Problemi correlati