web-dev-qa-db-fra.com

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

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

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

rester le même dans le pot:

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

sans avoir besoin d'ajouter les propriétés, classez-le dans un dossier de ressources séparé. Y a-t-il un moyen de dire ça à Maven?

38
Paralife

Vous pouvez ajouter ce qui suit dans votre pom indiquant que les ressources sont disponibles dans src/main/Java et including le type de ressources.

<build>
    <resources>
        <resource>
            <directory>src/main/Java</directory>
            <includes>
                <include>**/*.properties</include>
            </includes>
        </resource>
    </resources>
</build>
60
Raghuram

Avec ce fragment de pom, vous incluez tout ce qui n'est pas un fichier Java pour l'artefact principal et l'artefact 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>
10
Erik van Oosten

Incluez et mixez 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>
0
GaRzY