【发布时间】:2023-03-17 23:48:01
【问题描述】:
可以采取什么方法来验证库是否与特定版本的 Java 兼容?
示例:库 X 是在 Java 1.7 上编译的,因此它可能无法在 Java 1.7 或更低版本上运行。
谢谢。
【问题讨论】:
-
通过检查库的文档。
-
文档可能有误...最好检查字节码...
可以采取什么方法来验证库是否与特定版本的 Java 兼容?
示例:库 X 是在 Java 1.7 上编译的,因此它可能无法在 Java 1.7 或更低版本上运行。
谢谢。
【问题讨论】:
最好通过enforcer rule 检查字节码,可以使用maven-enforcer-plugin 将其应用于您的构建...
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>enforce-bytecode-version</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<enforceBytecodeVersion>
<maxJdkVersion>1.7</maxJdkVersion>
</enforceBytecodeVersion>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>extra-enforcer-rules</artifactId>
<version>1.0-beta-4</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
[...]
</project>
【讨论】:
用你想要的版本编译:
javac -target ...
看到:How do i compile a .java with support for older versions of java?
并检查 jar 依赖关系:以 Jdepend 为例
【讨论】: