gpt4 book ai didi

java - 如何解决maven EnforcedBytecodeVersion失败?

转载 作者:行者123 更新时间:2023-12-02 01:59:28 24 4
gpt4 key购买 nike

当尝试运行 Maven Enforcer 时,由于某些类符合 1.9,而整个项目仅限于 1.8,因此失败。以下是日志的堆栈跟踪。该特定依赖项由不同的 jar 拉取,由于它具有编译时依赖项,因此无法排除该 jar。

[INFO] Checking unresolved references to org.codehaus.mojo.signature:java18:1.0
[INFO] Restricted to JDK 1.8 yet javax.json.bind:javax.json.bind-api:jar:1.0:compile contains module-info.class targeted to JDK 1.9
[WARNING] Rule 14: org.apache.maven.plugins.enforcer.EnforceBytecodeVersion failed with message:
Found Banned Dependency: javax.json.bind:javax.json.bind-api:jar:1.0

最佳答案

您似乎误解了enforceBytecodeversion的意图...它将检查所有依赖项是否使用字节码作为更新版本,这意味着高于JDK 8只是提升maxJdkVersion并不能解决问题。该问题与您正在使用的依赖项有关......

The dependency: javax.json.bin:javax.json.bind-api 
contains a `module-info.class` file which is related to JDK 9 ...

如果您确定该依赖项中的所有代码都不使用 JDK 9 特定的内容,则必须从检查强制规则中排除 module-info.class...

更新:这可以通过使用 following 来实现:

<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.0.0-M1</version>
<executions>
<execution>
<id>enforce-bytecode-version</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<enforceBytecodeVersion>
<maxJdkVersion>1.8</maxJdkVersion>
<ignoreClasses>
<ignoreClass>module-info</ignoreClass>
</ignoreClasses>
</enforceBytecodeVersion>
</rules>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>extra-enforcer-rules</artifactId>
<version>1.0-beta-9</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
[...]
</project>

关于java - 如何解决maven EnforcedBytecodeVersion失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51850449/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com