Как устранить зависимость между файлами, сгенерированными плагином maven во время компиляции?
Хорошо, позвольте мне попытаться изложить мою проблему как можно менее запутанно.
У меня есть стандартный проект Maven с несколькими плагинами Maven -
1) maven-antrun-plugin
2) Custom maven plugin, say, my-maven-plugin
3) jaxws-maven-plugin
Теперь вот сложная часть.
Первый плагин генерирует несколько файлов.java, которые я сейчас размещаю в "$ {project.build.directory} / java"
Второй плагин генерирует другой набор файлов.java, все из которых я снова помещаю в "$ {project.build.directory} / java". Тем не менее, они находятся под разными структурами пакетов.
Оба этих плагина запускаются на этапе "создания источников".
Теперь мой третий плагин, jaxws-maven-plugin, пытается использовать файлы классов для файлов, сгенерированных 1-м и 2-м плагинами, в качестве SEI для генерации WSDL. Но файлы классов не будут созданы maven в этот момент во время компиляции, и плагин выдает сообщение "Class Not found".
Итак, как мне решить эту проблему? Кроме того, поскольку во время фазы "создания источников" произошла ошибка, я не вижу файлы.class для каких-либо других исходных файлов из моего проекта в каталоге target / classes.
И вот еще один поворот. Некоторые из моих исходных файлов импортируют эти сгенерированные во время компиляции исходные файлы в коде (Вы не представляете, насколько сильно я сейчас ищу этого разработчика!!)
Я попытался описать мою проблему наилучшим образом, поэтому, пожалуйста, не стесняйтесь спрашивать любые другие детали или разъяснения.
1 ответ
Запустить вручную build-helper-maven-plugin
а также maven-compile-plugin
до jaxws-maven-plugin
:
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
...
<executions>
<execution>
<phase>generate-sources</phase>
</execution>
...
</executions>
<plugin>
<plugin>
...
<artifactId>my-maven-plugin</artifactId>
...
<executions>
<execution>
<phase>generate-sources</phase>
</execution>
...
</executions>
<plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>some directory</source>
...
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compile-plugin</artifactId>
...
<executions>
<execution>
<phase>generate-sources</phase>
</execution>
<goals>
<goal>compile</goal>
</goals>
</executions>
<plugin>
<plugin>
<artifactId>jaxws-maven-pluginn</artifactId>
...
<plugin>
</plugins>
</build>
Я не проверял это, но я думаю, что это должно работать.