我有一个Maven
项目foo,这是一个webstart。为了通过浏览器分发,内容需要进行jarsigned,我使用maven-jarsigner-plugin
执行:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jarsigner-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>package</phase>
<id>sign</id>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
<configuration>
<keystore>mykeystore.jks</keystore>
<alias>myalias</alias>
<storepass>mypass</storepass>
</configuration>
</plugin>
那部分有效。然而,完全尴尬的情况是我需要在服务器端组件中使用webstart jar中的一些模块,让我们称之为bar,它作为war文件作为Tomcat
模块运行。我没有设计这个 - 这是一个巨大的黑客,所以我不需要建议什么是糟糕的设计。这是我现在必须要解决的遗留约束。
问题是,当我将foo声明为bar的依赖项时,它需要jarsigned foo.jar - 然后我得到一个java.lang.SecurityException
因为bar.war的其余部分没有签名。
问题:我有没有办法
在foo的构建过程中保存已签名和未签名的jar,然后将unsigned作为依赖项调用bar - 或
删除条形pom.xml
中依赖关系声明中单个签名foo.jar中的签名?
答案 0 :(得分:2)
您可以将maven 分类器与个人资料结合使用,以实现您的目标。有关分类器的更多详细信息,请参见on this page