Question

J'ai un super pom défini dans lequel je spécifie un répertoire « ressources » pour les ressources. Dans l'un de mes projets, mon pom pom étend cette super, et je voudrais ajouter une ressource supplémentaire. J'ai essayé:

    <resources>
        <resource>
            <targetPath>/</targetPath>
            <directory>additionalDir</directory>                
        </resource>
    </resources>

Mais cela aboutit à uniquement additionalDir étant des ressources et ne comprend pas les ressources du super-pom. Est-il possible d'étendre les ressources du super-pom?

Était-ce utile?

La solution

Le comportement que vous avez décrit est prévu.

Rappelez-vous que votre super-POM est héritant de Maven de défaut POM et à peu près tout plugin que vous définissez dans votre pom surcharger les paramètre dans la valeur par défaut POM. À titre d'exemple, pour permettre le filtrage sur la ressource par défaut, vous devez indiquer le chemin dans votre POM. Vous faites ceci:

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

Non ceci:

<resources>
  <resource>
    <filtering>true</filtering>
  </resource>
</resources>

Le répertoire par défaut ne bouillonne pas pour vous, même si vous avez spécifié là. Il pourrait y avoir un MOJO spécial pour le faire pour vous, mais je ne pouvais pas trouver un.

Autres conseils

Voir build-assistant-maven-plugin .

Oui, maven l'emporte sur les ressources du POM parent lors de la redéfinition nouvelle section des ressources.

Cependant, un moyen simple d'ajouter des ressources est à

  1. Supprimer la section des ressources de votre POM
  2. Afficher le POM effectif
  3. Copiez les ressources de votre POM efficace dans votre projet
  4. Remplacer les chemins absolus avec ceux relatifs
  5. Ajoutez vos ressources supplémentaires

Je sais que cette question est assez vieux maintenant, mais peut-être quelqu'un trouvera ce UTILE:

Vous pouvez facilement le faire en utilisant le plug-in de ressources Maven.

En fait, ce qu'il fait par défaut (en invoquant les ressources: objectif des ressources) se déplace le contenu de tous les répertoires listés dans la section build / des ressources en utilisant le filtre déclaré dans le ${project.build.outputDirectory} Si vous voulez maintenant ajouter des ressources supplémentaires sans influencer ces sections, vous pouvez simplement déplacer les ressources là-bas vous. Un non, cela ne signifie pas glisser-déposer là-bas.

Les Maven Resources Pluginprovides un but resources:copy-resources nommé qui fait exactement pour vous: Faire face à des fichiers en utilisant des filtres d'un endroit à l'autre, ou les états plug-in doc:

  

Vous pouvez utiliser les ressources de copie-mojo pour copier des ressources qui ne sont pas dans la mise en page par défaut de Maven ou non déclarés dans la construction / élément des ressources et l'attacher à une phase

L'avantage évident par rapport à l'accumulation aide, qui est suggéré dans d'autres solutions, est que, alors que l'accumulation aide est seulement en mesure de prendre des mesures au cours de la phase generate-sources, le plugin ressources fonctionne dans toutes les phases. (Bien qu'il serait sage de l'exécuter avant l'étape d'emballage)

Un exemple complet sur la façon d'utiliser est fourni , dans le cadre des plugins page du projet.

Qu'est-ce que cela ne se débrouille le contenu du répertoire des ressources qui ne figurent pas « de src/non-packaged-resources » dans "${basedir}/target/extra-resources". Mais depuis le plug-in pot (qui crée l'archive jar) crée essentiellement une archive zip du répertoire « ${project.build.outputDirectory} », vous pouvez le mettre là.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top