Uso Maven utilizzando layout di directory non standard
Domanda
sto cercando di applicare Maven per un progetto esistente, che ha già una struttura di directory sul posto. Tutto quello che posso trovare dalla domanda precedente è la seguente.
Tuttavia, la mia richiesta è più dettagliato. 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
è per il codice sorgente Java solo, se non sbaglio.
Per la struttura di cui sopra, come faccio dichiaro in pom.xml
? Spostare la directory è la mia ultima opzione al momento.
Soluzione
Credo che hai bisogno di qualcosa di simile al di sotto.
Vedendo WEB-INF
, suppongo si vuole costruire una guerra. Maven guerra plug fa questo. Sarà necessario configurare questo bit di un dato che la struttura di cartelle non è standard - ad esempio, potrebbe essere necessario specificare la posizione di web.xml utilizzando la proprietà webXml
. Questi sono documentati nella pagina di utilizzo .
<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>
Altri suggerimenti
È possibile modificare la struttura delle directory di default dichiarato nel Super POM da loro sovrascrivendo nel pom.
Per il tuo esempio, per es.
<sourceDirectory>src-java</sourceDirectory>
<resources>
<resource>
<directory>src-properties</directory>
</resource>
</resources>
Maven copierà tutte le risorse per il file jar. Se si desidera includere WEB-INF per il vaso sarebbe meglio spostarlo nella directory risorsa specificata. In caso contrario, è necessario copiarlo da soli (con plugin Maven) nella directory di destinazione - suppongo
. <resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
</resource>
qui .