如何克服maven org.eclipse.persistence JAR签名错误

时间:2013-08-13 15:41:19

标签: security maven persistence eclipselink

我试图将modelgen jar添加到我的maven项目以启用自动Metamodel类生成但是当我尝试编译项目时出现以下错误:

Failed to execute goal org.bsc.maven:maven-processor-plugin:2.2.4:process (process) on project Project-per: Error executing: java.lang.RuntimeException: java.lang.SecurityException: class "org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProperties"'s signer information does not match signer information of other classes in the same package

尽我所能确定JAR签名中最有可能发生未命中匹配导致此问题。但是我不明白为什么或如何解决问题。

我的POM(仅限相关部分)

<dependency>
    <groupId>org.eclipse.persistence</groupId>
    <artifactId>eclipselink</artifactId>
    <version>2.5.0-RC2</version>
    <scope>compile</scope>
</dependency>

<dependency>
    <groupId>org.eclipse.persistence</groupId>
    <artifactId>org.eclipse.persistence.nosql</artifactId>
    <version>2.5.0-RC2</version>
    <type>jar</type>
</dependency>

<dependency>
    <groupId>org.eclipse.persistence</groupId>
    <artifactId>org.eclipse.persistence.jpa.modelgen</artifactId>
    <version>2.4.2</version>
</dependency>

NB。使用nosql和eclipselink时,一切正常,就在我添加modelgen时。

2 个答案:

答案 0 :(得分:1)

好的,我可以告诉我是对的,问题是由JAR文件中的签名差异引起的。如eclipselink这样流行的图书馆如何发生这种情况超出了我的范围,但是嘿。

我的解决方案是使用快照,因为它们通常没有签名。鉴于我无法从中心获取快照,我使用以下回购来获取它;

<repository>
    <id>sonatype-snapshots</id>
    <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
</repository>

<dependency>
    <groupId>org.eclipse.persistence</groupId>
    <artifactId>org.eclipse.persistence.jpa.modelgen</artifactId>
    <version>2.6.0-SNAPSHOT</version>
</dependency>

答案 1 :(得分:0)

将以下依赖项添加到pom

<pluginExecution>
                    <pluginExecutionFilter>
                      <groupId>org.bsc.maven</groupId>
                      <artifactId>maven-processor-plugin</artifactId>
                      <versionRange>[2.2.4,)</versionRange>
                      <goals>
                        <goal>process</goal>
                      </goals>
                    </pluginExecutionFilter>
                    <action>
                      <ignore />
                    </action>
</pluginExecution>