2017-12-07 35 views
2

동일한 위치의 여러 폴더에서 WSDL을 선택하고 제공하는 기능이 다르기 때문에 다른 패키지로 구문 분석하도록 jaxb2-maven-plugin을 구성했습니다. mvn install을 실행하면 첫 번째 wsdl 만 처리되고 두 번째 wsdl은 무시됩니다. 버전을 1.5에서 1.6으로 변경하면 두 번째 WSDL 만 처리되고 첫 번째 WSDL은 무시되며 약간 이상하게 보입니다. 둘 다 제대로 처리되고 패키지화 될 것으로 기대됩니다. 구문/플러그인에 필요한 변경 사항을 제안하십시오.jaxb2-maven-plugin을 사용하여 다른 패키지로 WSDL을 구문 분석 할 수 없습니다.

<plugin> 
<groupId>org.codehaus.mojo</groupId> 
<artifactId>jaxb2-maven-plugin</artifactId> 
<version>1.5</version> 
<executions> 
    <execution> 
     <id>xjc-rules</id> 
     <goals> 
      <goal>xjc</goal> 
     </goals> 
     <configuration> 
      <schemaDirectory>src/main/resources/wsdl</schemaDirectory> 
      <schemaFiles>*.wsdl</schemaFiles> 
      <xmlschema>false</xmlschema> 
      <wsdl>true</wsdl> 
      <args>-wsdl</args> 
      <packageName>com.baplc.ngs.dealing.rules</packageName> 
     </configuration> 
    </execution> 
    <execution> 
     <id>xjc-infra</id> 
     <goals> 
      <goal>xjc</goal> 
     </goals> 
     <configuration> 
      <schemaDirectory>src/main/resources/wsdl/infracloud</schemaDirectory> 
      <schemaFiles>*.wsdl</schemaFiles> 
      <xmlschema>false</xmlschema> 
      <wsdl>true</wsdl> 
      <args>-wsdl</args> 
      <packageName>com.baplc.ngs.dealing.informatica.cloud</packageName> 
     </configuration> 
    </execution> 
</executions> 

답변

1

당신은 모든 execution의의 configuration 내부의 다음 행이 포함되어야합니다

<clearOutputDir>false</clearOutputDir> 

(기술적으로, 당신은 두 번째 실행에 포함 할 필요를,하지만 난에 좋아 구성이 비슷합니다.)

매개 변수 clearOutputDir은 기본적으로 true로 설정되어 있으며 th e outputDirectory (기본값은 ${project.build.directory}/generated-sources/jaxb).

clearOutputDir이 true로 설정되면 첫 번째 WSDL 파일이 첫 번째 실행에서 처리됩니다. 두 번째 실행에서는 출력 디렉토리가 지워지고 (따라서 첫 번째 실행에서 생성 된 파일이 제거됨) 두 번째 파일이 처리됩니다. 따라서 두 번째 파일에서 생성 된 클래스 만 볼 수 있습니다.

자세한 내용은 documentation을 참조하십시오.