我需要导入
javax.jms.*
类。包含到 Maven 项目中的正确依赖项是什么?我正在尝试 javax.jms:jms:1.1
,但没有成功(是 pom,不是 jar)。
ps。到目前为止我发现的唯一解决方法是:
javax:javaee-api:6.0
(来自 Maven Central)。
在 ActiveMQ 以及 Qpid JMS 等其他一些项目中,我们从 Apache Geronimo JAR 中引入 JMS 规范类,1.1 API 在此依赖项中可用:
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jms_1.1_spec</artifactId>
<version>1.1.1</version>
</dependency>
例如,对于 JMS 2 API,您需要使用不同的依赖项
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jms_2.0_spec</artifactId>
<version>1.0-alpha-2</version>
</dependency>
这些都是 Apache 2.0 许可的依赖项。
现在事情已经转移到 JMS 规范的 Jakarta API 版本,JMS API jar 的选项也发生了变化。
可以在此处找到与旧版 JMS 2.0 API 兼容的基本 Jakarta JMS 2.0 API。
<dependency>
<groupId>jakarta.jms</groupId>
<artifactId>jakarta.jms-api</artifactId>
<version>2.0.3</version>
</dependency>
可以从这里引入 3.x 系列中的新 Jakarta Messaging API,ActiveMQ 6.0+ 代理已迁移到 Jakarta:
<dependency>
<groupId>jakarta.jms</groupId>
<artifactId>jakarta.jms-api</artifactId>
<version>3.1.0</version>
</dependency>
正如其他人指出的那样,这里还有一个未经 Apache 许可的选项。
<dependency>
<groupId>javax.jms</groupId>
<artifactId>javax.jms-api</artifactId>
<version>2.0.1</version>
</dependency>
Sun 许可证不允许 Maven 存储库托管此(和其他)工件。
这是解释这一点以及您应该做什么的文档...
它的意思是您需要手动下载 JAR,然后将其安装到您自己的本地存储库或 Nexus 服务器中。
这些工件托管在 Maven 中心的 pom.xml 文件包含有关从何处下载 JAR 的信息。
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
我已经成功使用了这个:
<dependency>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
<version>1.1</version>
</dependency>
如果您只需要 JMS 库,而不需要 javaee 的其余部分,请使用以下命令:
https://mvnrepository.com/artifact/javax.jms/javax.jms-api/2.0.1
<dependency>
<groupId>javax.jms</groupId>
<artifactId>javax.jms-api</artifactId>
<version>2.0.1</version>
</dependency>
根据mvnrepository,在项目的pom中添加的依赖如下:
<dependency>
<groupId>jms</groupId>
<artifactId>jms</artifactId>
<version>1.1</version>
</dependency>
查看 grepcode.com 上列出的依赖项。
我最近才发现这个网站,它很震撼!
http://grepcode.com/search/?query=javax.jms.*
看起来 Maven Central 上的 Geronimo jar 应该可以解决您的问题。
这对我自己有用
<dependency>
<groupId>javax.jms</groupId>
<artifactId>javax.jms-api</artifactId>
<version>2.0.1</version>
</dependency>