首页 > 解决方案 > 针对不同 JDK 版本编译的相同 JAR

问题描述

我们有一个遗留的 Java 库(称为 AcmeLib),用于引导 Java 应用程序、提供配置、包装某些数据库功能等。这个库非常处于维护模式,并且是使用 maven 构建的标准 Java 8 jar。

我们现在想要构建 Java 11 应用程序——它们需要使用 AcmeLib。我的第一个想法是继续在 Java 8 中构建 AcmeLib - 当导入 Java 11 应用程序时它会正常工作(* 关键是更新 AcmeLib 依赖项)。

我有另一个想法来构建 AcmeLib 的 Java 8 和 Java 11 版本。我可以使用 maven 配置文件来做到这一点(因为它们只有库之间的差异将是 pom 的东西,例如插件配置等)例如

<profiles>
    <profile>
        <id>java-11</id>
        <activation>
            <jdk>11</jdk>
        </activation>
        <!-- add Java 11 specific configuration -->
    </profile>
</profiles>

所以 2 个配置文件,意味着 2 个构建 - 所以我的问题(关于时间!)我想知道这是否可能是一种反模式?另外,人们对命名约定有什么建议吗?当前的lib版本在5.5上是任意的,所以我可以创建一个11版本,例如..

<!--  Java 8 complied -->
<artifactId>AcmeLib</artifactId>
<version>5.6</version>

<!--  Java 11 complied -->
<artifactId>AcmeLib</artifactId>
<version>11</version>

标签: javamavenjava-11maven-profiles

解决方案


推荐阅读