我正在将Weld 3.1.0集成到我的应用程序中。我的应用程序已经与Javax Annotation API库有依赖关系。
我注意到Weld Implementation(Core)定义了与JBoss Common Annotations 1.3 API库的依赖关系,它定义了与Javax Annotation API中定义的(几乎)相同类的相同java包。
有谁知道为什么Weld依赖于JBoss Common Annotations 1.3 API库而不是直接使用Javax Annotation API?
先感谢您。
好奇心困扰着我,所以我去问WildFly mailing list这个问题我怀疑人们会回想起原因。 Weld是一个JBoss项目,就像WildFly一样,并且遵循相同的思路。
这里是答案(通过邮件粘贴,感谢Tomaz Cerar):
最长的时间java ee相关规范apis ware在任何maven存储库中都没有正式提供。
最近只有最新版本的Java / Jakarta EE规范apis开始在maven中心正确显示。
另一个原因是,Petr说,一些服务加载器配置(w)是不同的,在某些情况下甚至添加了一些impl类(w)。
所以这部分是历史原因,部分是实施类别的差异。
作为旁注 - 从用户的角度来看,你不应该注意到使用JBoss API版本而不是另一个版本的差异,因为在API方面它们确实相同。