Опция wsdlArtifact в cxf-codegen-plugin на разных модулях

Странное поведение с плагином cxf-codegen на maven.

Некоторая информация:

Один родительский pom (называемый РОДИТЕЛЬ) с 3 детьми: СЕРВИС, КЛИЕНТ1, КЛИЕНТ2.

Служба генерирует два wsdl, описанных двумя классификаторами, начиная с двух классов. СЕРВИС pom.xml - это:

<plugin>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-java2ws-plugin</artifactId>
            <executions>
                <execution>
                    <id>generate-client-first</id>
                    <phase>process-classes</phase>
                    <configuration>
                        <classifier>first</classifier>
                        <className>com.CLASS1</className>
                        <genWsdl>true</genWsdl>
                        <verbose>true</verbose>
                        <attachWsdl>true</attachWsdl>
                    </configuration>
                    <goals>
                        <goal>java2ws</goal>
                    </goals>
                </execution>
                <execution>
                    <id>generate-client-second</id>
                    <phase>process-classes</phase>
                    <configuration>
                        <classifier>second</classifier>
                        <className>com.CLASS2</className>
                        <genWsdl>true</genWsdl>
                        <verbose>true</verbose>
                        <attachWsdl>true</attachWsdl>
                    </configuration>
                    <goals>
                        <goal>java2ws</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

CLIENT1 и 2 генерируют два Java-клиента, начиная с классифицированного wsdl, созданного в SERVICE. Таким образом, CLIENT1 pom.xml

  <plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <executions>
      <execution>
        <id>generate-sources-client1</id>
        <phase>generate-sources</phase>
        <configuration>
          <sourceRoot>${project.build.directory}/generated-sources/cxf</sourceRoot>
          <wsdlOptions>
            <wsdlOption>
              <wsdlArtifact>
                <groupId>com.something</groupId>
                <artifactId>artifact</artifactId>
                <version>${project.version}</version>
                <classifier>first</classifier>
              </wsdlArtifact>
            </wsdlOption>
          </wsdlOptions>
          <defaultOptions>
            <faultSerialVersionUID>FQCN</faultSerialVersionUID>
          </defaultOptions>
        </configuration>
        <goals>
          <goal>wsdl2java</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

CLIENT2 pom.xml

  <plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <executions>
      <execution>
        <id>generate-sources-client2</id>
        <phase>generate-sources</phase>
        <configuration>
          <sourceRoot>${project.build.directory}/generated-sources/cxf</sourceRoot>
          <wsdlOptions>
            <wsdlOption>
              <wsdlArtifact>
                <groupId>com.something</groupId>
                <artifactId>artifact</artifactId>
                <version>${project.version}</version>
                <classifier>second</classifier>
              </wsdlArtifact>
            </wsdlOption>
          </wsdlOptions>
          <defaultOptions>
            <faultSerialVersionUID>FQCN</faultSerialVersionUID>
          </defaultOptions>
        </configuration>
        <goals>
          <goal>wsdl2java</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

Запустив только pom CLIENT2 (mvn -U clean install), все работает правильно, даже если запустить mvn -U generate-sources цели в pom PARENT.

Проблема возникает при запуске: mvn -U clean install на родительском pom, потому что второй клиент не генерируется: фактически он "разрешает" всегда первый wsdl:

[INFO] ------------------------------------------------------------------------
[INFO] Building client2 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.6.1:clean (default-clean) @ client2 ---
[INFO] Deleting /home/developer/workspace/PARENT/CLIENT2/target
[INFO] 
[INFO] --- cxf-codegen-plugin:3.0.4:wsdl2java (generate-sources) @ client2 ---
[INFO] com.something:artifact:wsdl:first:1.0-SNAPSHOT resolved to /home/.../Class1.wsdl
[INFO] Resolved WSDL artifact to file /home/.../Class1.wsdl

Проблема отличается от этого, потому что в этом случае было 2 выполнения в одной сборке. Последние две информации: 1) У меня есть эта проблема на локальном, а на Jenkins все работает правильно. 2) Maven версия

Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-14T18:29:23+01:00)
Maven home: /opt/develop/apache-maven/apache-maven-3.2.5
Java version: 1.8.0_31, vendor: Oracle Corporation
Java home: /usr/java/jdk1.8.0_31/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.13.0-46-generic", arch: "amd64", family: "unix"

Вы можете мне помочь?

Большое спасибо!

0 ответов

Другие вопросы по тегам