61 votes

Référencement du répertoire des ressources à partir des variables du modèle d'objet du projet

Si je peux utiliser ${project.build.sourceDirectory} pour référencer le répertoire source, que dois-je utiliser pour référencer le répertoire "ressources" ?

En regardant le super pom, il semblerait que ${project.build.resources.resource.directory} devrait fonctionner, mais ce n'est pas le cas

58voto

cthiebaud Points 175
${project.build.resources[0].directory}

Référence maven @ Sonatype, chapitre 'filtrage des ressources'. dit que tout ce qui est interne à maven "Model.class" peut être accédé. quote :

" Pour obtenir une liste complète des propriétés disponibles sur l'objet Maven Model, consultez la JavaDoc du projet maven-model ici. http://maven.apache.org/ref/3.0.4/maven-model/apidocs/index.html . Une fois que vous avez chargé ce JavaDoc, jetez un coup d'œil à la classe Model. À partir de ce JavaDoc de la classe Model, vous devriez être en mesure de naviguer jusqu'à la propriété POM que vous souhaitez référencer. "

Ensuite, plugin d'aide maven a un outil pratique aider:évaluer qui vous laissent faire des essais et des erreurs pour découvrir les propriétés.

45voto

Michael Points 2749

De aquí :

répertoire : La valeur de cet élément définit l'endroit où les ressources doivent être trouvées. Le répertoire par défaut pour un build est ${basedir}/src/main/resources .

Edit : pour plus de clarté

0 votes

Merci pour votre aide, mais ce n'est pas ce que je demande. Je comprends comment les ressources sont intégrées dans le build, et comment les configurer. J'ai besoin de savoir comment référencer cet emplacement via les propriétés de pom, comme exposé par la notation ${xxx}.

0 votes

Avez-vous fait défiler mon commentaire ? Le dossier des ressources est référencé par cette expression ${xxx} : ${basedir}/src/main/resources

0 votes

Oui, j'ai vu ça. Je suppose que je m'attendais juste à ce qu'il y ait une propriété maven pour ça en particulier, les docs disent que vous pouvez accéder à n'importe quel élément du pom juste en suivant les noms des éléments, ce qui est la façon dont j'ai dérivé le project.build.resources.resource.directory mais ça ne fonctionne pas je suppose. Ce qui m'amène à me demander si ce que je fais n'est pas non standard ; j'essaie d'éviter le non standard, quand je fais des trucs maven, comme la peste ;)

2voto

Peter Horvath Points 2177

En étendant la réponse de @chiebaud, en utilisant le plugin d'aide maven, je pense que l'option correcte aujourd'hui est

${project.resources[0].directory}

(sans le " .build partie ").

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