我有一个要使用Maven Publish Plugin发布的Java库项目。我面临的挑战是,我想将其发布到相同的本地关系存储库中,但使用多个JDK版本进行编译。就像我想使用JDK 1.8和JDK 11编译相同的源代码一样。之所以这样做,是因为我的项目有多个使用者,并希望确保能够提供正确的工件。
我从看到Microsoft的MSSQL Server驱动程序得到了这个想法。它们具有专门针对各个JDK发布的相同版本的驱动程序。
谢谢!
答案 0 :(得分:0)
您描述的用例恰好是发明Multi-Release JAR Files的用例。
The mrJar Gradle plugin是专门针对MRJAR用例而发明的插件。
实际上, mrJar 插件使用自身来创建发布到插件门户中的JAR。它是 dog foods 本身会在其构建过程中创建一个Modular Multi-Release JAR工件,该工件将从插件存储库中分发。
例如:仅Gradle 6.0或更高版本支持Java13。在Gradle插件门户上发布的 mrJar 插件的JAR文件仅具有智能功能。仅当在Java 13中运行的项目中应用Java 13时,才提供Java 13支持。当插件在Java 8、9、10、11、12中运行时,Java 13功能不存在。
我很确定使用 mrJar 插件是您问题所描述用例的解决方案。 These Usage instructions将逐步引导您完成您需要做的事情。