7
votes

Pourquoi Maven ne conditionnelle pas mon fichier de cartographie hibernate?

J'utilise Maven 2 et Hibernate pour une application Web Java.

J'ai un fichier de mappage hibernate, domain.hbm.xml dans le même dossier source avec plusieurs classes de domaine.

Si j'exécute MVN Clean Package Je trouve que ce fichier n'est pas copié dans le fichier de guerre dans le dossier cible.

Cependant, si je ne fais que mvn propre puis allez sur Eclipse et sélectionnez Nettoyer dans le menu du projet, le fichier est envoyé à la place appropriée de la cible. Je peux alors faire MVN Package pour emballer successivement un fichier de guerre qui a accès à la base de données.

est un paramètre POM pour cela? Qu'est-ce qui se passe?


1 commentaires

Êtes-vous sûr que votre fichier XML est sous le dossier Ressources?


4 Réponses :


9
votes

Ressources autres que les sources Java que vous souhaitez retrouver directement sur la classe de classe (dans votre cas inside / Web-Inf / Classes), vous devez entrer dans votre répertoire SRC / Main / Ressources, pas SRC / Main / Java.


0 commentaires

14
votes

Si j'exécute MVN Clean Package, je trouve que ce fichier n'est pas copié dans le fichier de guerre dans le dossier cible.

Ensuite, les fichiers de mappage ne sont probablement pas dans le répertoire de ressources par défaut ( SRC / Main / Ressources ) mais dans le répertoire source ( SRC / Main / Java ) et Maven ne les copiera pas dans le répertoire de sortie de construction par défaut.

Toutefois, si je ne nettoie que MVN, puis allez à Eclipse et sélectionnez Nettoyer dans le menu du projet, le fichier est envoyé à la place appropriée de la cible. Je peux ensuite faire un package MVN pour emballer successivement un fichier de guerre qui a accès à la base de données.

Sous Eclipse, je suppose que les fichiers des annuaires sources sont copiés dans le répertoire de sortie de la version, y compris les fichiers de ressources d'application. Donc, cette "astuce" maven lorsque vous exécutez package après l'étape Eclipse propre. Mais cela n'a pas vraiment d'importance, le maître est maven, tout le reste n'est pas pertinent.

Pour le réparer, déplacez vos fichiers de mappage vers SRC / Main / Ressources . Ou conservez-les dans src / main / java et déclarer le répertoire des sources comme un répertoire de ressources "extra": xxx

Certaines personnes font cela, je préférez utiliser des répertoires distincts.


0 commentaires

1
votes

J'ai eu le même problème. Cela a résolu mon problème.

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


0 commentaires

1
votes

Face au même problème que

Après les modifications suivantes dans le POM.XML résolu mon problème P>

<build>
    <finalName>spring-mvc-jquery</finalName>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
                <include>**/*.properties</include>
            </includes>
        </resource>
    </resources>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
</build>


0 commentaires