Cxf-codegen-plugin не генерирует источники
Я пытаюсь заставить cxf-codegen-plugin генерировать источники из моего wsdl файла. При вызове wsdl2java вручную генерируются нужные классы, но при использовании mvn generate-sources ничего не происходит, и я получаю сообщение "Нет целей, необходимых для проекта". Вызов плагина напрямую не помогает.
Из моих попов следует выдержка:
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>2.5.2</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/MyServiceInterface.wsdl</wsdl>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
Ответы
Ответ 1
Это очень похоже на то, как я (успешно) настраиваю этот плагин в одном из моих проектов; Я бы ожидал, что это сработает. (Я считаю, что вы можете опустить <sourceRoot>
, по умолчанию это тот, который вы указали.)
Единственное, о чем я могу думать, это если бы вы включили эту конфигурацию плагина в неактивный профиль Maven или (скорее) в разделе <pluginManagement>
вместо прямого <plugins>
; раздел pluginManagement переопределяет аспекты конфигурации плагинов, но фактически не позволяет им использовать их. (Однако это влияет на явное использование, я знаю, что вы не хотите этого делать.)
Ответ 2
В моем случае, по крайней мере, я думал, что он не генерирует исходный код, но на самом деле это было. Проблема заключалась в том, что папка target/generated/cxf была назначена Eclipse в качестве исходной папки, которую я не делал вручную. Таким образом, источник находился в верхней части моего проекта, в структуре пакета, а не в структуре папок ниже, где я смотрел и ожидал, что это будет.
Ответ 3
В моем случае, если у меня был старый целевой каталог (определенный в <sourceRoot>/path/to/target</sourceRoot>
), ничего не генерировалось. Только после удаления целевой папки вручную плагин фактически начал генерировать источники.