【问题标题】:Check if library will work on a specific verion of Java检查库是否适用于特定版本的 Java
【发布时间】:2023-03-17 23:48:01
【问题描述】:

可以采取什么方法来验证库是否与特定版本的 Java 兼容?

示例:库 X 是在 Java 1.7 上编译的,因此它可能无法在 Java 1.7 或更低版本上运行。

谢谢。

【问题讨论】:

  • 通过检查库的文档。
  • 文档可能有误...最好检查字节码...

标签: java maven


【解决方案1】:

最好通过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>

【讨论】:

    【解决方案2】:

    用你想要的版本编译:

    javac -target ...
    

    看到:How do i compile a .java with support for older versions of java?

    并检查 jar 依赖关系:以 Jdepend 为例

    Analyze JAR dependencies in a Java project

    【讨论】:

      猜你喜欢
      • 2020-11-30
      • 2014-10-08
      • 2021-05-26
      • 1970-01-01
      • 2017-02-20
      • 1970-01-01
      • 1970-01-01
      • 2013-10-02
      • 2013-05-19
      相关资源
      最近更新 更多