首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在开放源码软件库中支持多个Java版本

在开放源码软件库中支持多个Java版本
EN

Software Engineering用户
提问于 2016-04-05 09:40:11
回答 1查看 468关注 0票数 1

我正站在我的第一个开放源码Java库(GitHub/Maven)的过程中,开源硬件社区将公平/适度地使用它。

我正在用Java 8编写这个库,并使用Gradle 2.4管理它的构建。今年晚些时候,Java 9将发布,我想积极维护库的不同版本(每个JVM版本一个),原因如下:

  • 支持Java 9特性和语言可能会导致性能和API的改进
  • 但是,强迫库需要Java 9给尚未准备好升级到Java 9的大型应用程序带来了不必要的困难。
  • 因此,通过支持(即,继续定期发布),两者并行使每个人都感到高兴。

我很纠结于把这些分级子项目放在同一个回购项目下,还是把它们放在自己的顶级项目中。所以:

  • 一个myawesomelib顶级项目,其下面有java8/java9/子项目;或
  • 两个独立的myawesomelib-java8myawesomelib-java9顶级项目;或
  • 还有别的吗?

为了CI目的,我倾向于使用两个单独的顶级项目(因此提交给一个不触发另一个构建),但我以前从未处理过这个问题。

因此,所有这些都要问:在OSS库中管理多个JVM版本支持的一些常见技术是什么,以及它们在Gradle中是否有任何可以帮助实现这些技术的工具?

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2016-04-07 16:37:31

与当前的Java-8版本相比,Java-9带来了哪些好处?

我指的是使用你图书馆的人。

部署同一个库的两个并发版本有很多缺点。您需要在两者之间保持API兼容吗?您还必须维护代码两次,修复bug两次,因为不可避免的是,代码会承受一些不同。如果没有,那么只需在V8中发布它,请放心,它将在V9下正常工作。

通常,当创建一个比您自己的项目更大的使用库时,往往非常保守,并且支持尽可能低的Java版本。你需要关闭吗?你用NIO吗?没有吗?也许最好还是坚持使用v6,并接触到更广泛的受众。

我个人对此的看法是,尝试并拥有一个代码库,该代码库在JDK的最低版本下发布,该版本仍然有效,并将其保留在这个版本上。使用Java 6在Java 8下构建的库可以很好地工作,当Java 9出现时,它仍然可以正常工作。

如果您的库不能在项目之外使用,那么您可以使用项目使用的任何版本的JDK,同样,不要维护两个单独的版本--这是工作的两倍,却没有什么好处。

现在,如果您必须支持多个版本,我建议以这种方式对这两个版本进行分支并对它们进行维护,这很适合普通的VCS工具(git、svn等)。不需要维护支持多个编译环境或在构建脚本中运行以查看何时编译什么的古怪项目布局。不过,对我来说,好处必须是相当可观的。

票数 5
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/314781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档