2014-02-15 3 views
1

Apache POI는 일반적으로 Ant를 통해 컴파일되며 xmlbeans-Ant-task가 OfficeOpenXML 스키마를 코드로 변환하는 데 사용되는 몇 가지 단계가 있습니다.Ant 및 Maven을 통해 실행할 때 XMLBeans가 다른 코드를 만듭니다.

현재 Apache POI에서 Sonar 검사를보다 쉽게 ​​수행하기 위해 코드를 컴파일하는 해당 Maven pom.xml 파일 세트를 작성 중입니다.

그러나 생성 된 클래스 중 일부는 XMLBeans가 코드를 생성 할 때 다르게 나타납니다. 문이있는 개미 파일에서

: 즉, 메이븐에서

<xmlbean 
     schema="${ooxml.encryption.xsd.dir}" 
     srcgendir="${ooxml.encryption.src.dir}" 
     optimize="yes" 
     destfile="${ooxml.encryption.jar}" 
     javasource="1.5" 
     failonerror="true" 
     fork="true" 
     memoryMaximumSize="${ooxml.memory}" 
     > 
    <classpath refid="ooxml.classpath"/> 
</xmlbean> 

내가

<plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>xmlbeans-maven-plugin</artifactId> 
      <version>2.3.3</version> 
      <executions> 
      <execution> 
       <phase>generate-sources</phase> 
       <goals> 
        <goal>xmlbeans</goal> 
       </goals> 
      </execution> 
      </executions> 
      <configuration> 
       <schemaDirectory>target/schemas</schemaDirectory> 
       <javaSource>1.5</javaSource> 
       <optimize>yes</optimize> 
      </configuration> 
     </plugin> 

대부분의 클래스가 동일하지만, 하나는 다른 게터/세터를 임명했다 사용

개미 생산

/** 
* Gets the "encryptedKey" element 
*/ 
com.microsoft.schemas.office.x2006.keyEncryptor.password.CTPasswordKeyEncryptor 
    getEncryptedPasswordKey(); 

/** 
* Gets the "encryptedKey" element 
*/ 
com.microsoft.schemas.office.x2006.keyEncryptor.password.CTPasswordKeyEncryptor 
    getEncryptedKey(); 

나는이 문제를 해결할 수있는 방법이 있나요 :

하지만 메이븐 다른 게터 생산의 다른 이름 방법을주의? 지금까지 XMLBeans에 관해서는 거의 알지 못했지만 정확히 동일한 소스 -XSD가 사용되었습니다. 따라서 여기서는 사용하는 설정이 다를 수 있습니다 ...

+0

명백한 질문입니다. 같은 버전의 XMLbeans을 사용하고 있습니까? ANT 빌드를 확인하십시오. –

+0

예, 양쪽에 2.3.0이며, 2.6.0에서도 확인되었습니다. 아무런 운이없는 것 같습니다 ... – centic

+0

죄송합니다 Dominik, 나는이 질문을 우리의 음향 기기 소스에서 링크 된 것으로 보았습니다. 메서드 이름 지정은 .xsdconfig 파일 (encryptionCertificate.xsdconfig 및 encryptionPassword.xsdconfig)에 의해 구성됩니다. 나는 아직 그것을 검사하지는 않았지만, 개미가 maven과 다른 lookup dir을 가지고있는 것으로 보인다. – kiwiwings

답변

1

단지 완성을 위해서 ...이 될 수 있습니다. 구성 부분에 아래 추가하여 고정 :

<xmlConfigs> 
    <xmlConfig implementation="java.io.File">../../src/ooxml/resources/org/apache/poi/poifs/crypt</xmlConfig> 
</xmlConfigs> 

... 그래서 개미 작업은 .xsds과 같은 디렉토리에있는 .xsdconfig 파일을 찾습니다 만 받는다는은 ...

명시 적으로 지시 할 필요가
관련 문제