50 votes

Dans maven, comment puis-je inclure des fichiers src non-java au même endroit dans le jar de sortie ?

J'ai reçu un paquet de code source. Dans l'arborescence du répertoire src, il y a des fichiers de propriétés (.properties) que je veux conserver au même endroit dans le jar de sortie. Par exemple, je veux que

src/main/java/com.mycompany/utils/Myclass.java 
src/main/java/com.mycompany/utils/Myclass.properties

pour rester le même dans le bocal :

com.mycompany/utils/Myclass.class 
com.mycompany/utils/Myclass.properties

sans avoir besoin d'ajouter le fichier de propriétés dans un dossier de ressources séparé. Y a-t-il un moyen de dire cela à maven ?

70voto

Raghuram Points 26896

Vous pourriez ajouter ce qui suit dans votre pom indiquant que les ressources sont disponibles dans src/main/java y including le type de ressources.

<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
            </includes>
        </resource>
    </resources>
</build>

15voto

Erik van Oosten Points 121

Avec ce fragment de pom, vous incluez tout ce qui n'est pas un fichier java pour les artefacts principal et de test :

<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <excludes>
                <exclude>**/*.java</exclude>
            </excludes>
        </resource>
    </resources>
    <testResources>
        <testResource>
            <directory>src/test/java</directory>
            <excludes>
                <exclude>**/*.java</exclude>
            </excludes>
        </testResource>
    </testResources>
</build>

3voto

GaRzY Points 41

Incluez et mélangez tous vos fichiers src non .java et src/main/resources :

<resources>
        <resource>
            <directory>src/main/resources</directory>
        </resource>
        <resource>
            <directory>${project.build.sourceDirectory}</directory>
            <excludes>
                <exclude>**/*.java</exclude>
            </excludes>
        </resource>
    </resources>

    <testResources>
        <testResource>
            <directory>src/test/resources</directory>
        </testResource>
        <testResource>
            <directory>${project.build.testSourceDirectory}</directory>
            <excludes>
                <exclude>**/*.java</exclude>
            </excludes>
        </testResource>
    </testResources>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X