Skip to main content

Using the BOM

Discord4J v3 uses a BOM or Bill of Materials as a way to coordinate dependencies that work well together, therefore providing faster and safer ways to migrate across versions.

Usage#

To check available versions make sure you go to the BOM repo and then replace 3.0.x below with the adequate version.

Maven#

Maven supports BOM through the dependencyManagement entry. You should first add this snippet to your pom.xml file:

<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.discord4j</groupId>
<artifactId>bom</artifactId>
<version>3.x.x</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

Then you are able to add dependencies just like normal ones, but without specifying the <version> attribute.

<dependencies>
<dependency>
<groupId>com.discord4j</groupId>
<artifactId>discord4j-core</artifactId>
</dependency>
<dependency>
<groupId>com.discord4j</groupId>
<artifactId>stores-caffeine</artifactId>
</dependency>
</dependencies>

Gradle#

Add the following to your build.gradle file to import the BOM, making sure replacing the version with the one you wish to use:

dependencies {
implementation platform("com.discord4j:bom:3.x.x")
}

Finally, add the dependency as normal, without needing to specify the version:

dependencies {
compile "com.discord4j:discord4j-core"
compile "com.discord4j:stores-caffeine"
}

Development builds#

You can also use SNAPSHOT and development builds from Jitpack with this BOM. You just have to also make sure you include the proper repository to pull the right dependencies:

Maven#

<repositories>
<repository>
<id>snapshots</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<snapshots><enabled>true</enabled></snapshots>
</repository>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>

Gradle#

repositories {
// This repository is for SNAPSHOTs
maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
// This repository is for pulling dependencies from Jitpack
maven { url 'https://jitpack.io' }
// This repository is for releases
mavenCentral()
}