Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Red Hat提供使用不同Java编译器版本编译的构建?_Java_Maven - Fatal编程技术网

为什么Red Hat提供使用不同Java编译器版本编译的构建?

为什么Red Hat提供使用不同Java编译器版本编译的构建?,java,maven,Java,Maven,为什么Red Hat提供使用不同Java编译器版本编译的相同源代码的构建 尤其是hibernate-jpa-2.1-api: 如果这有价值,为什么Maven Central中没有针对不同编译器版本的相同源代码的构建 Maven Central只有一个最终版本: 据我所知,它是RedHat支持模型 Maven Central是上游开源版本,而 RedHat支持RedHat版本 正如您所见,RedHat的版本为“1.0.0.Final-RedHat-2”,因此,如果该版本正在使用,谁将从Red

为什么Red Hat提供使用不同Java编译器版本编译的相同源代码的构建

尤其是hibernate-jpa-2.1-api:

如果这有价值,为什么Maven Central中没有针对不同编译器版本的相同源代码的构建

Maven Central只有一个最终版本:

据我所知,它是RedHat支持模型

  • Maven Central是上游开源版本,而

  • RedHat支持RedHat版本


正如您所见,RedHat的版本为“1.0.0.Final-RedHat-2”,因此,如果该版本正在使用,谁将从RedHat获得支持,但RedHat不支持上游开源版本。

这两个问题的真正答案是。。。。问问管理这些事情的人。真正的原因可能包括务实/商业原因

首先,使用较旧的Java工具链构建JAR文件有一个明显的优势。例如,Java 7平台不会运行JARs build For Java 8或更高版本,因为类文件版本号,在某些情况下还因为Java API依赖关系。因此,Redhat所做的对那些需要在旧版本Java上运行的用户(即付费客户)来说更好。。。到了一定程度

另一方面。。。Maven Central是一项社区活动。工件由开发人员自己(有时由第三方)构建和发布;见:

  • 许多开发人员对支持旧Java平台不感兴趣
  • 一些开发人员认为支持旧的Java平台是个坏主意。在旧的不受支持的Java版本(版本7和更早版本)上运行代码对安全性有害,除非您采取措施缓解这种情况
此外,Maven POM文件和Maven Central都没有很好的方法来标记Java版本兼容性或通过Java构建平台识别工件。(如果我错了,请纠正我……)


在一个理想的世界里,“某人”会为此做些什么。实际上。。。请参阅上面的要点。

我个人一直使用OpenJDK存储库。您在哪里看到提到过不同的编译器版本?我在您提供的链接中找不到任何这样的引用。@ErwinBolwidt META-INF文件夹中编译的JAR中的MANIFEST.MF表示编译器版本。@markspace您可以链接到它吗?很高兴知道我的问题为什么被否决。在不知道问题是什么的情况下获得它有点不公平。hibernate-jpa-2.1-api在Maven Central上使用较旧的Java版本构建了一个包,在Red Hat repository上使用2个较新的Java版本构建了一个包。您的答案可能适用于其他相反的软件包。好消息,谢谢