2010-12-15 3 views
0

Imaginez que j'ai un projet que je veux créer en utilisant maven. Mon projet ne respecte malheureusement pas la mise en page par défaut de Maven. Donc, j'ai deux dossiers source A & B contenant .properties fichiers avec .java sources.Inclure les fichiers .properties avec .class dans JAR après l'installation de mvn

Après un mvn install, mes fichiers .properties ne sont pas empaquetés dans le fichier avec mes fichiers générés .class. Y at-il un moyen de le faire automatiquement, vous proposeriez probablement d'utiliser <resources> tag pour résoudre ce genre de problèmes; cela fonctionne évidemment je sais, mais je devrai à chaque fois spécifier où mes fichiers .properties sont stockés, et où je veux qu'ils soient empaquetés dans le JAR, ce n'est pas une solution pour moi puisque j'ai plusieurs dossiers sources (des centaines) régulièrement mis à jour.

<resource> 
     <targetPath>com\vermeg\jar2</targetPath> 
     <filtering>true</filtering> 
     <directory>${basedir}/a/jar2</directory> 
     <includes> 
      <include>*.properties</include> 
     </includes> 
     <excludes> 
      <exclude>*.java</exclude> 
     </excludes> 
</resource> 

Est-ce que je, pour chaque dossier source, pour écrire dans mon POM, quelqu'un connaît un moyen plus simple automatique de le faire?

Cordialement,

Répondre

0

Généralement, vous pouvez utiliser Maven properties et profiles pour résoudre ce genre de problème.

Par exemple modifier votre pom:

<resource> 
    <targetPath>${myresources.targetpath}</targetPath> 
    <directory>${myresources.directory}</directory> 
    ... 
</resource> 

et définissent myresources.directory et myresources.targetpath dans la ligne de commande à l'aide -Dname=value ou dans le profil conditionnel ou en utilisant d'autres propriétés disponibles dans votre construction.

Si vous expliquez la structure et/ou les conditions de votre projet et leur relation avec votre variable (targetPath et répertoire), je pourrais peut-être vous aider davantage avec votre question.

0

Spécifiez une fois dans une pom-mère à la place, et tous les enfants doivent hériter de la même configuration ...

0

Serait-il impossible de changer d'utiliser la mise en page standard Maven, avec toutes vos propriétés en parallèle ' package 'hiérarchie sous src/main/ressources? Ensuite, vous n'avez pas besoin de spécifier quoi que ce soit; tous les fichiers .properties seront empaquetés. Si vous faites cela, vous devrez activer le filtrage car il est désactivé par défaut. Vous devrez peut-être déclarer explicitement les répertoires de ressources, car lorsque vous les déclarez, cela semble remplacer ceux que vous obtenez «gratuitement». En ce qui concerne vos multiples dossiers source, un projet Maven multi-module serait probablement le meilleur ajustement, A et B étant les enfants d'un nouveau projet parent.

Cela peut sembler beaucoup de travail, mais les conventions de Maven sont assez raisonnables, et cela a tendance à être une expérience douloureuse si vous allez à leur encontre.

Questions connexes