139 votes

Si vous utilisez maven, généralement mettre log4j.properties sous java ou ressources ?

Je me demande où mettre le fichier log4j.properties lorsque vous utilisez le répertoire classique de Maven. Quelqu'un sait ?

151voto

Jan Galinski Points 2654

SRC/main/resources est le placement « standard » pour cela.

61voto

Zoltán Points 2915

Il suffit de le mettre dans src/main/resources seront ensemble à l'intérieur de l'objet. E. g. si votre artefact est un POT, vous aurez l' log4j.properties le fichier de l'intérieur, de perdre son premier point de la faire journalisation configurable.

J'ai l'habitude de le mettre dans src/main/resources, et il faut en sortie de cible comme suit:

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <targetPath>${project.build.directory}</targetPath>
            <includes>
                <include>log4j.properties</include>
            </includes>
        </resource>
    </resources>
</build>

En outre, pour que log4j pour réellement voir, vous devez ajouter le répertoire de sortie pour le chemin de classe. Si votre objet est un fichier exécutable JAR, vous avez probablement utilisé le maven-assembly-plugin pour le créer. À l'intérieur de ce plugin, vous pouvez ajouter le répertoire courant du POT pour le chemin de classe par l'ajout d'un Class-Path l'entrée du manifeste de la sorte:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <mainClass>com.your-package.Main</mainClass>
            </manifest>
            <manifestEntries>
                <Class-Path>.</Class-Path>
            </manifestEntries>
        </archive>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration>
    <executions>
        <execution>
            <id>make-assembly</id> <!-- this is used for inheritance merges -->
            <phase>package</phase> <!-- bind to the packaging phase -->
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Maintenant, le log4j.les propriétés de fichier sera juste à côté de votre fichier JAR, configurables individuellement.

Pour exécuter votre application directement à partir d'Eclipse, ajouter l' resources répertoire à votre classpath de votre configuration d'exécution: Run->Run Configurations...->Java Application->New sélectionnez l' Classpath onglet, sélectionnez Advanced et accédez à votre src/resources répertoire.

27voto

splash Points 8499

Certains comptes de « data mining » pour que `` est l’endroit typique.

Résultats sur Google Code Search:

  • ``: 4877
  • ``: 215

9voto

devastator Points 71

Les ressources utilisées pour l'initialisation du projet sont, de préférence, mettre dans src/main/resources dossier. Afin de permettre le chargement de ces ressources lors de la compilation, on peut simplement ajouter des entrées dans la pom.xml dans le projet maven comme une accumulation de ressources

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering> 
        </resource>
    </resources>
</build> 

D'autres .les propriétés de fichiers peuvent également être conservés dans ce dossier utilisé pour l'initialisation. Le filtrage est définie sur true si vous voulez avoir des variables dans les fichiers de propriétés de dossier de ressources et de les remplir à partir du profil des filtres de fichiers de propriétés, qui sont conservés dans le dossier src/main/filtres qui est défini comme les profils , mais c'est un autre cas d'utilisation tout à fait. Pour l'instant, vous pouvez les ignorer.

C'est une grande ressource maven plugins de ressources, il est utile, il suffit de parcourir par le biais d'autres sections.

6voto

JohnS Points 3434

Quand mettre les fichiers de ressources dans un autre endroit n’est pas la meilleure solution, vous pouvez utiliser :

Par exemple quand les fichiers de ressources (par exemple jaxb.properties) va profondément à l’intérieur des paquets ainsi que les classes Java.

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