I need to import javax.jms.*
classes. What is the right dependency to include into a Maven project? I'm trying javax.jms:jms:1.1
, but no luck (it's pom, not jar).
ps. The only workaround I've found so far is: javax:javaee-api:6.0
(from Maven Central).
In ActiveMQ as well as some other projects like Qpid JMS we pull in the JMS spec classes from Apache Geronimo JARs, the 1.1 APIs are available in this dependency:
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jms_1.1_spec</artifactId>
<version>1.1.1</version>
</dependency>
For JMS 2 APIs you'd need to use a different dependency, for instance
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jms_2.0_spec</artifactId>
<version>1.0-alpha-2</version>
</dependency>
These are both Apache 2.0 licensed dependencies.
Now that things have moved on to the Jakarta API versions of the JMS Specifications the options for JMS API jars have shifted.
The basic Jakarta JMS 2.0 API that is API compatible with legacy JMS 2.0 APIs can be found here.
<dependency>
<groupId>jakarta.jms</groupId>
<artifactId>jakarta.jms-api</artifactId>
<version>2.0.3</version>
</dependency>
New Jakarta Messaging APIs in the 3.x series can be pulled in from here, ActiveMQ 6.0+ brokers have migrated to Jakarta:
<dependency>
<groupId>jakarta.jms</groupId>
<artifactId>jakarta.jms-api</artifactId>
<version>3.1.0</version>
</dependency>
Another option which is not Apache licensed is here as others have pointed out.
<dependency>
<groupId>javax.jms</groupId>
<artifactId>javax.jms-api</artifactId>
<version>2.0.1</version>
</dependency>