Verwendung von Nicht-Standard-Verzeichnis Layout mit maven
Frage
Ich versuche, Maven zu einem bestehenden Projekt anzuwenden, die bereits eine Verzeichnisstruktur an Ort und Stelle hat. Alles, was ich von vorheriger Frage ist die folgende finden.
Allerdings ist meine Anforderung detaillierter. Bitte siehe unten für die Verzeichnisstruktur:
<root dir>
|
+--src-java
|
+--src-properties
|
+--WEB-INF
Ich weiß, dass wir so etwas wie
haben könnten<build>
<sourceDirectory>src-java</sourceDirectory>
...
</build>
Aber sourceDirectory
ist für Java-Quellcode nur, wenn ich mich nicht irre.
Für die obige Struktur, wie erkläre ich es in pom.xml
? Verschieben Sie das Verzeichnis ist meine letzte Option jetzt.
Lösung
Ich denke, man etwas ähnliches wie unten haben muß.
Sehen WEB-INF
, ich nehme an, Sie einen Krieg aufbauen wollen. Maven Plugin Krieg tut dies. Sie müssen diese ein bisschen konfigurieren, da die Ordnerstruktur nicht-Standard ist - zum Beispiel müssen Sie den Standort von web.xml mit webXml
Eigenschaft angeben. Diese sind dokumentiert in der Nutzung .
<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>
Andere Tipps
Sie können die Struktur Standardverzeichnis in dem deklarierten ändern Super POM indem man sich in Ihrem pom überschrieben wird.
Für Ihr Beispiel z.
<sourceDirectory>src-java</sourceDirectory>
<resources>
<resource>
<directory>src-properties</directory>
</resource>
</resources>
Maven werden alle Ressourcen in die JAR-Datei kopieren. Wenn Sie möchten, WEB-INF in das Gefäß schließen wäre es am besten in das angegebene Ressource-Verzeichnis zu verschieben. Ansonsten haben Sie es von selbst zu kopieren (mit maven Plugins) in das Zielverzeichnis - Ich nehme
. <resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
</resource>
hier .