Apache POI 通常通过 Ant 编译,并且有一些步骤,其中 xmlbeans-Ant-task 用于将 OfficeOpenXML 模式转换为代码。
我目前正在构建一组相应的 Maven pom.xml 文件,这些文件还编译代码,以便更轻松地在 Apache POI 上运行声纳检查。
然而,当 XMLBeans 生成代码时,一些生成的类看起来不同。
在 Ant 文件中,语句是:
<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>
在 Maven 中我使用
<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>
大多数类是平等的,但一个有不同的命名 getter/setter,即
蚂蚁出品
/**
* Gets the "encryptedKey" element
*/
com.microsoft.schemas.office.x2006.keyEncryptor.password.CTPasswordKeyEncryptor
getEncryptedPasswordKey();
但是 Maven 产生了一个不同的 getter,注意不同命名的方法:
/**
* Gets the "encryptedKey" element
*/
com.microsoft.schemas.office.x2006.keyEncryptor.password.CTPasswordKeyEncryptor
getEncryptedKey();
有什么办法可以解决这个问题吗?据我所知,使用了完全相同的源 XSD,尽管我对 XMLBeans 知之甚少,所以这里使用的可能是一些不同的设置......