我在谷歌上搜索了很久,仍然对上面的每一个到底是什么意思感到困惑。
以下是我对它的理解:
我下载了每个jar,并尝试反编译并查看其中的内容,但我只能在所有jar中找到接口,而不能找到实现。
在maven shade插件生成重复警告的情况下,我面临着这些问题,需要正确理解上面的内容,以找出哪些要排除以及为什么要排除。
发布于 2015-08-20 11:19:27
我先来回答这个问题
"JSR311它是一个规范请求。这意味着它应该是一个文档。为什么它是一个jar?“
除了最后一个(jersey-core
),所有这些jars都是“规范”jars。JAX-RS (以及许多其他Java)规范定义了实现者应该为其实现指定行为的契约(或接口)。
因此,规范中指定的所有类基本上都应该作为契约出现在jar中。jars的最终用户可以将它们用于合同。但是没有实现。您需要有一个实际的实现来运行应用程序,尽管spec API jar足以编译一个完整的JAX-RS兼容应用程序。
例如,如果我们在类路径上有一个spec API jar,我们可以编写整个JAX-RS应用程序并编译它,但是为了运行它,如果我们没有实际的实现,我们需要部署到具有该规范版本的实际实现的服务器上,例如JBoss或Glassfish
其他资源
阅读不同规范versions.
还要注意的是,尽管不同的实现遵循规范,但每个实现都有自己的一组额外功能。要了解更多信息,您应该查看不同实现的文档。三种最流行的实现是Jersey、RESTeasy和CXF
https://stackoverflow.com/questions/32106428
复制相似问题