我试图将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时。
答案 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>