为什么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/
答案 0 :(得分:1)
据我所知,它是RedHat支持模型。
Maven Central - 是上游的OpenSource版本,而
RedHat支持RedHat版本。
正如您所看到的,RedHat的版本为“1.0.0.Final-redhat-2”,因此如果使用此版本,谁支付支持将从RedHat获得,但RedHat不支持上游OpenSource版本。
答案 1 :(得分: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:
此外,Maven POM文件或Maven Central都没有很好的方法来标记Java版本兼容性或通过Java构建平台识别工件。 (如果我错了,请纠正我......)
在一个理想的世界里,“某人”会为此做点什么。在实践中......请参阅上面的要点。