Подтвердить что ты не робот

Maven: как добавить ресурсы, которые генерируются после этапа компиляции

У меня есть проект Maven, который использует wsgen для создания файлов XSD из скомпилированных классов Java.

Проблема в том, что я хочу добавить сгенерированные файлы в банку в качестве ресурсов. Но поскольку фаза resource выполняется до фазы process-classes, я не могу их добавить.

Есть ли способ сказать maven добавить дополнительные ресурсы, которые были сгенерированы на этапе process-classes?

4b9b3361

Ответ 1

Я бы предложил определить выходной каталог для XSD файлов в target/classes (может быть с дополнительной подпапкой, которая будет упакована позже во время фазы пакета в банку. Этого можно достичь, используя maven-resources-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>

Вам нужно позаботиться о том, чтобы плагин ресурсов располагался после плагина, который используется для вызова части wsgen. Вы также можете использовать фазу подготовки пакета, чтобы убедиться, что ресурсы будут правильно упакованы.