Maven + jarsigner + 测试类 = 错误

标签 maven junit jarsigner

我有一个包含一些测试用例的 Maven 项目。今天我尝试添加 jarsigner 插件,现在测试失败了:

java.lang.SecurityException:类“types.AccountType”的签名者信息与同一包中其他类的签名者信息不匹配

测试类在同一个包中,可以访问包私有(private)方法等。我相信这个错误正在发生,因为当被测试的类被签名时,junit 测试类没有被签名。

有没有人有关于如何避免这个问题的建议?我有一些想法,但不知道如何实现它们:

  • 导致测试阶段使用类而不是 jar 文件。
  • 将测试类放入它们自己的 jar 文件并签名。
  • 最佳答案

    我今天遇到了这个问题,问题就像你多年前猜到的那样(签署订单问题)。这对我来说是修复(更改安装阶段):

            <plugin>
                <artifactId>maven-jarsigner-plugin</artifactId>
                <version>${maven-jarsigner-plugin.version}</version>
                <executions>
                    <execution>
                        <id>sign</id>
                        <!-- note: this needs to be bound after integration tests or they will fail re: not signed -->
                        <phase>install</phase>
                        <goals>
                            <goal>sign</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <tsa>http://sha256timestamp.ws.symantec.com/sha256/timestamp</tsa>
                    <keystore>${project.basedir}/.conf/Keystore</keystore>
                    <alias>Alias</alias>
                    <storepass>{1234}</storepass>
                </configuration>
            </plugin>
    

    jar 仍然被签名并且集成测试再次工作。

    关于Maven + jarsigner + 测试类 = 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21879945/

    相关文章:

    java - 通过配置文件激活/停用 Sonar maven 插件?

    eclipse - 无法使用 Tomcat 7 在 Eclipse 中运行 Maven 项目

    java.lang.IllegalStateException : Failed to load ApplicationContext

    unit-testing - Grails单元测试不起作用-NoClassDefFoundError:junit/framework/TestCase

    android - 单元测试Android,从资源中获取字符串

    android - 通过命令行签署 APK

    java - maven-surefire-plugin系统属性和eclipse集成?

    java - 在 pom.xml 中添加 hibernate-search-orm 后出错

    android - 您上传了一个在 Debug模式下签名的 APK。您需要在 Release模式错误中签署您的 APK

    java - Java 安全对话框的外观