Maven Dependencies from GitHub
Referencing the official Smack documentation, the following Maven dependencies are required for version 4.2.0:
<dependency>
<groupId>org.igniterealtime.smack</groupId>
<artifactId>smack-java7</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>org.igniterealtime.smack</groupId>
<artifactId>smack-tcp</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>org.igniterealtime.smack</groupId>
<artifactId>smack-im</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>org.igniterealtime.smack</groupId>
<artifactId>smack-extensions</artifactId>
<version>4.2.0</version>
</dependency>
Dependency Requirements for Smack 4.3.4
For version 4.3.4, there are two approaches to handle dependencies:
Method 1: Maven Dependencies
This version requires a additional dependency compared to 4.2.0:
<dependency>
<groupId>org.igniterealtime.smack</groupId>
<artifactId>smack-java7</artifactId>
<version>4.3.4</version>
</dependency>
<dependency>
<groupId>org.igniterealtime.smack</groupId>
<artifactId>smack-tcp</artifactId>
<version>4.3.4</version>
</dependency>
<dependency>
<groupId>org.igniterealtime.smack</groupId>
<artifactId>smack-im</artifactId>
<version>4.3.4</version>
</dependency>
<dependency>
<groupId>org.igniterealtime.smack</groupId>
<artifactId>smack-extensions</artifactId>
<version>4.3.4</version>
</dependency>
<dependency>
<groupId>org.igniterealtime.smack</groupId>
<artifactId>smack-resolver-minidns</artifactId>
<version>4.3.4</version>
</dependency>
Method 2: Manual JAR Management
Download the complete Smack 4.3.4 distribution from the official website and manually include these additional JAR files:
- jxmpp-core-0.6.4.jar
- jxmpp-jid-0.6.4.jar
- jxmpp-util-cache-0.6.4.jar
- minidns-core-0.3.4.jar
- xpp3_xpath-1.1.4.jar
- minidns-client-0.3.4.jar
- minidns-dnssec-0.3.4.jar
- minidns-hla-0.3.4.jar
- minidns-iterative-resolver-0.3.4.jar
- xpp3-1.1.4c.jar
Resolving DNS Dependency Issue
When using manually downloaded JARs, you may encounter this error:
Exception in thread "main" java.lang.NoClassDefFoundError: org/xbill/DNS/TextParseException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.jivesoftware.smack.SmackInitialization.loadSmackClass(SmackInitialization.java:193)
... additional stack trace details
This requires adding the dnsjava library:
<dependency>
<groupId>org.xbill</groupId>
<artifactId>dns</artifactId>
<version>2.0.8</version>
</dependency>
With this additional dependency, all Smack connectivity issues with OpenFire should be resolved.