lorsque je crée un package war avec maven, les fichiers et les répertoires du répertoire "src/main/resources" sont copiés dans/WEB-INF/classes au lieu de/WEB-INF. Comment puis-je les copier dans/WEB-INF?
merci, Rand
UPDATE: Dans mon pom maintenant, j'utilise ceci:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<id>copy-resources</id>
<!-- here the phase you need -->
<phase>war</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>myapp/target/WEB-INF</outputDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
et je lance mvn avec:
mvn -Dmaven.test.skip = true ressources de package clair: copy-resources
mais j'ai eu:
[INFO] One or more required plugin parameters are invalid/missing for 'resources:copy-resources'
[0] Inside the definition for plugin 'maven-resources-plugin' specify the following:
<configuration>
...
<outputDirectory>VALUE</outputDirectory>
</configuration>.
[1] Inside the definition for plugin 'maven-resources-plugin' specify the following:
<configuration>
...
<resources>VALUE</resources>
</configuration>.
J'utilise maven 2.2 et l'extrait est fondamentalement le même que celui de la documentation.
configurez le paramètre outputDirectory
du plugin resources:resources
ou placez vos fichiers dans le répertoire src/main/webapp/WEB-INF/
. plugin de ressources
MODIFIER:
Cette configuration fonctionne pour moi:
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.2</version>
<executions>
<execution>
<id>default-copy-resources</id>
<phase>process-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<overwrite>true</overwrite>
<outputDirectory>${project.build.directory}/${project.artifactId}-${project.version}/WEB-INF/</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
vous pouvez exécuter une phase sous la forme somePhase
ou un objectif somePlugin:someGoal
. Les invocations de phase invoqueront dans l'ordre tous les objectifs de plug-ins accrochés aux phases dans l'intervalle [validate, phase]. Il n'est donc pas nécessaire de les appeler explicitement.
Les ressources Web ne sont pas les mêmes que les ressources Java, qui doivent être placées dans le chemin d'accès aux classes. Les ressources Web sont traitées via le plugin war et doivent être placées dans src\main\webapp\WEB-INF\
. Dans ce cas, cela fonctionnera automatiquement sans configuration supplémentaire dans le fichier pom.xml.
Cette configuration fonctionne, ajoutez le plugin pom.xml
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<webResources>
<!--copy resource file location-->
<resource>
<directory>${project.build.directory}/classes</directory>
</resource>
</webResources>
<!--location for add file-->
<webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory>
</configuration>
</plugin>