maven copy-resources nicht in WAR Datei

Robertop

Bekanntes Mitglied
Hallo zusammen,

ich möchte in einem Projekt bestimmte Resourcen-Dateien beim Build durch Template-Dateien ersetzen. Bei einer Google Suche habe ich schon gefunden, dass das "maven-resources-plugin" mit "copy-resources" eigentlich schon genau die Funktionalität anbietet, die ich brauche.

Mein Problem ist, dass nach dem Build zwar die neuen Dateien an der angegebenen Stelle im Target Ordner liegen (z.B. target/my-server/WEB-INF/classes/datei1.txt), aber in der WAR Datei, die der Build ausspuckt, an derselben Stelle noch die alte Datei liegt. Muss ich noch zusätzliches etwas einstellen, damit die geänderte Resource auch in der WAR-Datei erscheint?

XML:
<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>3.2.0</version>
    <executions>
        <execution>
            <id>copy-server-templates</id>
            <phase>package</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <overwrite>true</overwrite>
                <outputDirectory>target/${project.build.finalName}/WEB-INF/classes</outputDirectory>
                <resources>
                    <resource>
                        <directory>src/templates</directory>
                        <filtering>true</filtering>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>
 
Das hört sich so an, also ob da schlicht die Reihenfolge der Ausführung falsch ist und das Zusammenpacken vor dem kopieren kommt.

Du könntest die phase ändern, also z.B.
<phase>process-resources</phase>

Das wäre eine Idee, die mir so durch den Kopf geht. aber ich kenne jetzt auch nur einen Auszug aus Deinem pom und kann daher nicht sagen, ob und wie die anderen maven plugins ggf. konfiguriert wurden.
 
https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#plugins hat gesagt.:
If more than one goal is bound to a particular phase, the order used is that those from the packaging are executed first, followed by those configured in the POM.
 

Zurück
Oben