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

问题描述 投票:-1回答:2

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

特别是hibernate-jpa-2.1-api:https://maven.repository.redhat.com/ga/org/hibernate/javax/persistence/hibernate-jpa-2.1-api/

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

Maven Central只有1个最终版本:http://central.maven.org/maven2/org/hibernate/javax/persistence/hibernate-jpa-2.1-api/

java maven
2个回答
1
投票

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

  • Maven Central - 是上游的OpenSource版本
  • RedHat支持RedHat版本。

正如您所看到的,RedHat的版本为“1.0.0.Final-redhat-2”,因此如果使用此版本,谁支付支持将从RedHat获得,但RedHat不支持上游OpenSource版本。


1
投票

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

首先,使用旧的Java工具链构建JAR文件有一个明显的优势。例如,由于classfile版本号,Java 7平台不会为Java 8或更高版本运行JAR构建,并且在某些情况下由于Java API依赖性。因此,Redhat正在做的事情对于那些需要构建以在旧版Java上运行的人(即付费客户)来说更好。

另一方面...... Maven Central是一项社区活动。工件由开发人员自己(或有时由第三方)构建和发布;看https://maven.apache.org/guides/mini/guide-central-repository-upload.html

  • 许多开发人员对支持旧Java平台毫无兴趣。
  • 一些开发人员认为支持旧的Java平台是一个坏主意。在旧的不受支持的Java版本(版本7及更早版本)上运行代码对安全性有害,除非您采取措施来缓解这种情况。

此外,Maven POM文件或Maven Central都没有很好的方法来标记Java版本兼容性或通过Java构建平台识别工件。 (如果我错了,请纠正我......)

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

© www.soinside.com 2019 - 2024. All rights reserved.