web-dev-qa-db-fra.com

Comment copier une ressource dans le répertoire cible src avec Maven?

Je travaille actuellement sur un projet existant contenant un fichier pom.xml avec les éléments suivants:

<resources>
    <resource>
        <filtering>false</filtering>
        <directory>src</directory>
        <includes>
            <include>**/*.properties</include>
        </includes>
    </resource>
</resources>

J'ai dans le chemin de base un répertoire appelé propriétés qui contient des fichiers de propriétés. Je veux copier lors de la compression de tous les fichiers de propriétés contenus sous propriétés/dans mon répertoire src (sinon, le programme planterait en raison de fichiers de configuration manquants).

Donc ma question est: 

Comment puis-je, avec Maven, inclure des fichiers de ressources qui ne se trouvent pas dans le répertoire src?

J'essaie celui-ci mais cela ne semble pas fonctionner:

<resources>
    <resource>
        <filtering>false</filtering>
        <directory>src</directory>
        <includes>
            <include>**/*.properties</include>
            <include>../properties/**</include>
        </includes>
    </resource>
</resources>

Merci de votre aide.

11
stankoua

Si votre structure de fichier ressemble à ceci: Disposition de répertoire standard

enter image description here

Ensuite, vous ne devez pas ajouter les ressources elemt. Maven copie par default tous les fichiers et dossiers qui se trouvent dans votre dossier/src/main/resources dans votre dossier de construction et les localise à la racine de vos fichiers de chemin de classe compilés.
Si vous avez, par exemple, un fichier nommé configuration.properties situé dans /src/main/resources/configuration.properties, lors de l'exécution de mvn clean compile, ce fichier sera copié dans votre /target/classes/configuration.propertiesSo, si vous supprimez cette partie, les fichiers seront situés où vous le souhaitez. leur

<resource>
    <filtering>false</filtering>
    <directory>src</directory>
    <includes>
        <include>**/*.properties</include>
    </includes>
</resource>
20
zpontikas

En migrant des projets ant en maven sans changer la structure du projet, définissez votre répertoire sourceDirectory testSourceDirectory dans la construction et utilisez le plug-in maven-resource-plugin comme il convient, veillez à la phase d'exécution des objectifs. 

        <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.6</version>
            <executions>
                <execution>
                    <id>copy-resources01</id>
                    <phase>process-classes</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${basedir}/target/classes</outputDirectory>
                        <encoding>UTF-8</encoding>
                        <resources>
                            <resource>
                                <directory>${basedir}/src</directory>
                                <includes>
                                    <include>**/*.properties</include>
                                </includes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
                <execution>
                    <id>copy-resources02</id>
                    <phase>verify</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${basedir}/build/lib</outputDirectory>
                        <encoding>UTF-8</encoding>
                        <resources>
                            <resource>
                                <directory>${basedir}/target/</directory>
                                <include>*.jar</include>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
9
aberes

Pour tout copier de la source à la destination, j’ai utilisé

        <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.6</version>
            <executions>
                <execution>
                    <id>copy-resources</id>
                    <phase>process-classes</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${basedir}/target/classes/static/</outputDirectory>
                        <resources>
                            <resource>
                                <directory>${basedir}/gui/build/</directory>
                                <includes>
                                    <include>**/*.*</include>
                                </includes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
0