2013-10-21 39 views
15

我正在使用appengine-maven插件来构建我的Java Google App Engine项目。Maven:资源二进制文件生成后更改文件大小

我包括在WEB-INF子文件夹

的.p12证书当我建立我的应用程序,证书通过增加几KB的文件大小。这使其无效。我也看到.jks证书也发生了同样的情况。

我已验证证书预先生成的有效性,并使用相同的方法来确认生成后证书的无效性。

谁能告诉我为什么文件大小正在改变,为什么它不是简单地复制到WAR?

感谢您的帮助。

+0

您应该向我们展示您的pom或可以重现此问题的pom。 –

回答

22

另一种解决方案是通过添加下面的配置文件中禁用整个项目的.p12文件过滤:

<build> 
    ... 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-resources-plugin</artifactId>     
     <configuration> 
     <nonFilteredFileExtensions> 
      <nonFilteredFileExtension>p12</nonFilteredFileExtension> 
     </nonFilteredFileExtensions> 
     </configuration> 
    </plugin> 
    </plugins> 
</build> 
9

看来,行家正在申请过滤到我的证书文件

http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html

解决的办法是禁用

<resource> 
    <directory>${basedir}/src/main/webapp/certs</directory> 
    <filtering>false</filtering> 
    <targetPath>WEB-INF/classes</targetPath> 
</resource> 

这允许正确读取证书,并解决了以下异常in JavaPNS

Validating keystore reference: VALID (keystore was found) 
Verifying keystore content: javapns.communication.exceptions.KeystoreException: 
Keystore exception: DerInputStream.getLength(): lengthTag=111, too big. at javapns.communication.KeystoreManager.wrapKeystoreException(KeystoreManager.java:178) 
0

我通过移动”的.p12' 文件一级目录解决了这个问题。因此,不是将它保存在WEB-INF中,而是将其移至“webapp”目录。没有过滤发生在那里。