web-dev-qa-db-fra.com

Maven: Comment ajouter des ressources générées après la phase de compilation

J'ai un projet maven qui utilise Wsgen pour générer [~ # ~] xsd [~ # ~ ~] fichiers du compilé Java classes .

Le problème est que je souhaite ajouter les fichiers générés au bocal en tant que ressources. Mais puisque la phase resource passe avant le process-classes Phase, je ne peux pas les ajouter.

Existe-t-il un moyen de dire à Maven d'ajouter des ressources supplémentaires générées à la process-classes phase?

32
Avner Levy

Je suggérerais de définir le répertoire de sortie des fichiers XSD dans cible/classes (peut être avec un sous-dossier supplémentaire qui sera emballé ultérieurement pendant la phase d'emballage dans le pot. Cela peut être obtenu en utilisant le Maven- Ressources-plugin .

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>3.0.2</version>
        <executions>
          <execution>
            <id>copy-resources</id>
            <phase>process-classes</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.outputDirectory}</outputDirectory>
              <resources>          
                <resource>
                  <directory>${basedir}/target/xsd-out</directory>
                  <filtering>false</filtering>
                </resource>
              </resources>              
            </configuration>            
          </execution>
        </executions>
      </plugin>
    </plugins>
    ...
  </build>
  ...
</project>

Vous devez veiller à ce que le plugin de ressources soit positionné après le plugin utilisé pour appeler la partie WSGen. Vous pouvez également utiliser le préparer-package phase plutôt que pour vous assurer que les ressources seront correctement emballées.

42
khmarbaise